使用.NET'Async'API防止TIME_WAIT

Lu4*_*Lu4 3 .net c# network-programming

我有一个问题,我开发了一个客户端和服务器包装器供我个人使用,但不幸的是由于网络编程知识不足,我在客户端连接期间遇到TIME_WAIT问题.我的客户端现在尝试在短时间内与同一主机建立多个连接,我发现主要原因是因为我正在尝试重用套接字并且它进入TIME_WAIT状态因为我正在关闭没有正常关机的连接.我想知道使用.NET套接字关闭连接的正确模式,以防我强烈使用'Async'API,即ConnectAsync,AcceptAsync,SendAsync,ReceiveAsync,DisconnectAsync等功能(DisconnectAsync - 重用套接字)

Lu4*_*Lu4 7

我发现不可能阻止TIME_WAIT.服务器或客户端都会有任何问题,这取决于谁先启动连接关闭.如果是关闭连接的客户端,则服务器上将没有TIME_WAIT.如果是首先关闭的服务器,则客户端上不会有TIME_WAIT.因此,剩下要做的唯一选择是使用SO_REUSEADDR,但在这种情况下,仍然无法使用重用地址来联系先前断开连接的主机