C#所有套接字关闭

三元

我试图了解什么会导致给定应用程序的所有套接字关闭/关闭而无法再次打开。

我的应用程序有多个套接字(http,ftp等),并且将运行一段时间,尽管在某些时候(某种确定性),所有套接字都将关闭(我可以通过看到此信息ProcMon)。

我得到了可怕的Exception: An established connection was aborted by the software in your host machine例外。然后,如果我尝试再次打开套接字,则会收到一条错误消息,提示WSAStartup可能尚未调用。

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

三元

根据建议,我将其重新发布为答案。

感谢大家的指导,我能够解决此问题。我打电话WSAStartupWSACleanup的倍量不均匀。当额外的WSACleanup命中时,它将关闭该应用程序所有线程上的所有套接字(请参阅MSDN文档)。

在多线程环境中,WSACleanup终止所有线程的Windows套接字操作。

我在每个启动器(++)周围都添加了一个简单的静态计数器,如果计数器> 0,它们都将调用cleanup。问题解决了。

希望这对其他人有帮助。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章