【发布时间】:2011-01-03 00:23:43
【问题描述】:
我正在构建一个具有非常基本前提的程序。
对于 X 数量的对象 打开连接 执行操作 关闭连接 打开下一步
这些连接中的每一个都是在 socks5 代理上建立的,大约在第 200 个连接后,我收到“操作超时”错误。我已经测试了所有代理,它们工作得很好,真正奇怪的是,如果我关闭程序并重新启动它,问题就会消失。因此,我只能相信,当我关闭连接时,它实际上并没有关闭连接,并且计算机正在过载。我如何强制关闭与某个类关联的所有 socks 连接?
socket.Shutdown(SocketShutdown.Both);
//socket.Close();
socket.Disconnect(true);
socket = null;
针对使用 netstat 的提示,我检查了它。我注意到那些挥之不去但最终会消失的联系。但是,问题仍然存在,大约第 100 次连接后,连接之间有 5 秒的暂停。我收到超时错误。如果我关闭程序并重新启动它,它们就会消失。所以出于某种原因,我觉得这些联系正在留下一些东西。 Netstat dosent 显示它。我什至尝试将客户端的实例添加到列表中,每次完成时将其从列表中删除,然后将其设置为 null。有没有办法杀死一个端口?如果我杀死了正在建立连接的端口,也许这会起作用?这可能是 Windows 操作系统的问题吗?用来防病毒的东西?我大约每分钟建立一个连接,并维护该连接大约 1 分钟,然后继续进行下一个连接,如果不是同时连接的话,至少有 20 个并发连接。对我来说有意义的是,关闭程序似乎是为了清理我在代码中没有清理的任何资源。我正在使用我在互联网上找到的一个类,它允许将 socks5 代理与套接字类一起使用。所以我真的很茫然,有什么建议或方向会很棒吗?它必须很漂亮。我很想写一个我在连接列表中的文本文件并关闭程序,然后让另一个程序重新启动它以从此时停止的地方继续。
【问题讨论】: