У меня проблема с MantaRay JMS: я использую статическую карту мира, потому что автообнаружение не будет работать в нашей сети. Если более 10 пиров находятся в автономном режиме, я получаю сообщение об ошибке 4226 .
Проблема в том, что Microsoft установила ограничение в 10 полуоткрытых соединений с Windows XP SP2. MantaRay пытается связаться с каждым пэром и запускает множество соединений. Первые 10 подключений в порядке, затем, когда начинается 11-е, наше программное обеспечение должно ожидать истечения времени ожидания другого подключения. Превышено время ожидания для любой другой программы, пытающейся получить доступ к сети на том же ПК.
Странно то, что на некоторых ПК время ожидания соединения составляет 1-2 секунды, и проблема почти не имеет последствий, на некоторых других приходится ждать 10 или 20 секунд. Но, по словам Microsoft, нет способа напрямую настроить тайм-аут соединения TCP по умолчанию, и на это могут влиять другие факторы (сетевые коммутаторы, маршрутизаторы, VPN ...).
Я посмотрел исходный код MantaRay и попытался найти способ установить тайм-аут соединения TCP, но MantaRay использует SohetChannels вместо «обычных» сокетов, а метод connect () не имеет времени ожидания , Я что-то упустил?