Csharp/C#教程:使用.NET’Async’API防止TIME_WAIT分享


使用.NET’Async’API防止TIME_WAIT

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

您可以在套接字上使用SO_REUSEADDR来解决此问题。 有关详细信息,请参阅Socket.SetSocketOption ,它是您需要设置的ReuseAddress选项。

顺便说一句,你真的不是指重复使用socket吗? 一旦出现错误,您必须关闭它并打开一个新错误。

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

上述就是C#学习教程:使用.NET’Async’API防止TIME_WAIT分享的全部内容,如果对大家有所用处且需要了解更多关于C#学习教程,希望大家多多关注—计算机技术网(www.ctvol.com)!

本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。

ctvol管理联系方式QQ:251552304

本文章地址:https://www.ctvol.com/cdevelopment/950622.html

(0)
上一篇 2021年11月17日
下一篇 2021年11月17日

精彩推荐