0

我对 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()方法没有超时。我错过了什么吗?

4

2 回答 2

0

你也可以修补 WinXP 的 TCP/IP 连接限制......如果你不介意使用这些东西。有几个网站提供补丁。只需在 Google 上搜索“更改 winxp tcp 连接限制”,您就会找到其中的大部分。但使用这些工具需要您自担风险。修补代码以解决该限制应该是更好的方法。

于 2010-02-16T15:45:17.493 回答
0

问题解决了。

我用我写的一个更简单的 JMS 提供程序替换了整个 MantaRay:我通过 UDP 发送第一条测试消息,只有在收到第一条消息后才允许对等方打开 TCP 连接。

这教会了我在使用开源 (GPL) 软件时要小心。

于 2011-06-24T06:57:37.507 回答