我正在尝试编写控制台应用程序
_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。我错过了什么?
提前致谢..
答案 0 :(得分:0)
await
关键字导致您的方法执行停止,并且一旦客户端连接,该方法的其余部分将继续。
但是,如果这是您使用Main()
方法调用的唯一代码,则程序将在您到达该行时立即终止,因为没有任何内容在运行。
我认为您不需要对要执行的操作使用异步,只要WaitForData()
在内部是异步的,那么此代码将围绕循环继续接受更多客户端。