我对 MantaRay JMS 有疑问:我使用静态世界地图,因为自动发现在我们的网络中不起作用。如果超过 10 个对等点处于离线状态,我会收到错误4226。
问题是:Microsoft 对 Windows XP SP2 设置了 10 个半开连接的限制。MantaRay 尝试联系每个对等点,并开始大量连接。前10个连接是OK的,那么当第11个开始时,我们的软件必须等待另一个连接超时。尝试在同一台 PC 上访问网络的任何其他程序都会超时。
奇怪的是:在某些PC上,1-2秒后连接超时,问题几乎没有任何后果,而在另一些PC上,我们必须等待10或20秒。但是根据微软的说法,没有办法直接配置默认的 TCP 连接超时,还有其他因素(网络交换机、路由器、VPN ......)可能会影响它。
我查看了 MantaRay 源代码,并试图找到一种设置 TCP 连接超时的方法,但 MantaRay 使用 SohetChannels 而不是“常规”套接字,并且connect()方法没有超时。我错过了什么吗?