MantaRay JMS:事件 ID 4226。TCP 连接超时?

发布于 2024-08-20 18:28:07 字数 602 浏览 12 评论 0原文

我在使用 MantaRay JMS 时遇到问题:我使用静态世界地图,因为自动发现功能在我们的网络中不起作用。如果超过 10 个对等点离线,我会收到错误 4226

问题是:微软在Windows XP SP2中设置了10个半开连接的限制。 MantaRay 尝试联系每个对等点,并启动大量连接。前 10 个连接都可以,那么当第 11 个连接开始时,我们的软件必须等待另一个连接超时。尝试访问同一台 PC 上的网络的任何其他程序都会超时。

奇怪的是:在某些 PC 上,连接在 1-2 秒后超时,并且该问题几乎没有任何后果,而在其他 PC 上,我们必须等待 10 或 20 秒。但根据 Microsoft 的说法,无法直接配置默认 TCP 连接超时,并且还有其他因素(网络交换机、路由器、VPN...)可能会影响这一点。

我查看了 MantaRay 源代码,并试图找到一种设置 TCP 连接超时的方法,但是 MantaRay 使用 SohetChannels 而不是“常规”套接字,并且 connect() 方法没有超时。我错过了什么吗?

I have a problem with MantaRay JMS: I use a static world map because autodiscovery wouldn't work in our network. If more than 10 peers are offline, I get an error 4226.

The problem is: Microsoft set a limit of 10 half-open connections with Windows XP SP2. MantaRay tries to contact every peer, and starts a lot of connections. The first 10 connections are Ok, then when the 11th starts, our software must wait for another connection to time out. Any other program trying to access the network on the same PC times out.

Strange thing is: on some PC the connection times out after 1-2 seconds, and the problem has almost no consequences, on some other, we have to wait 10 or 20 seconds. But according to Microsoft, there's no way to configure the default TCP connect timeout directly, and there are other factors (network switches, routers, VPN...) which could influence that.

I looked at the MantaRay source code, and tried to find a way to set the TCP connect timeout, but MantaRay uses SohetChannels instead of "regular" sockets, and the connect() method has no timeout. Am I missing something?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

So尛奶瓶 2024-08-27 18:28:07

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

You could also patch the TCP/IP connection limit of WinXP... if you don't mind using such things. There are several sites offering patches. Just search Google for "change winxp tcp connection limit" and you'll find most of them. But use those tools on your own risk. Patching the code to work around that limit should be a better approach.

谎言月老 2024-08-27 18:28:07

问题解决了。

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

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

Problem solved.

I replaced the whole MantaRay with a much simpler JMS provider I wrote: I send a first test message over UDP, a peer is allowed to open a TCP connection only after this first message was received.

This taught me to be careful when using open-source (GPL) software.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文