c#所有套接字都关闭



我正在试图理解是什么原因导致给定应用程序的所有套接字下降/关闭并且无法再次打开。

我的应用程序有多个套接字(http, ftp等),并将运行一段时间,尽管在某些时候(有点确定性),所有的套接字将下降(我可以通过ProcMon看到这一点)。

我得到可怕的Exception: An established connection was aborted by the software in your host machine异常。然后,如果我尝试打开套接字(s)再次,我得到一个错误,说WSAStartup可能没有被调用。

我可以使用哪些工具或技术来调试这样的问题?

根据建议,我将此作为答案转发。

感谢大家的指导,我能够解决这个问题。我拨打WSAStartupWSACleanup的次数不均匀。当额外的WSACleanup到达时,它关闭应用程序所有线程中的所有套接字(请参阅MSDN文档)。

在多线程环境中,WSACleanup终止Windows Sockets所有线程的操作

我在每个startup(++)周围添加了一个简单的静态计数器,如果计数器>0,则都将调用清理。问题解决了。

希望对大家有所帮助

最新更新