我试图写一个控制台应用程序AcceptTcpClientAsync不等待响应
_mainListener = new TcpListener(new IPEndPoint(IPAddress.Any, 5000));
_mainListener.Start();
try
{
while (true)
{
TcpClient client = await _mainListener.AcceptTcpClientAsync();
client.ReceiveTimeout = 60000;
WaitForData(client);
}
}
catch (Exception ex)
{
StartListening();
}
应用只是
TcpClient client = await _mainListener.AcceptTcpClientAsync();
我知道有没有问题,在连接之后被立即终止到端口5000导致AcceptTcpClient与Async方法不同,它使用有效的响应转到WaitForData。我需要使用Async,因为应用程序会连接到多个ips。我错过了什么?
在此先感谢..
如果AcceptTcpClient工作 - 它会提示逻辑错误,因为非异步代码仍然会接受多个连接。 – BugFinder
是的,它接受多个连接,但等待一个连接关闭,然后继续在另一个连接上工作。 – xenep
因此,您切换到一个线程,然后回到循环中。即使你的方式是相同的,大部分.. – BugFinder