Несогласованная ошибка соединения с Twisted after py2exe - PullRequest
2 голосов
/ 09 марта 2011

Мой первый вопрос здесь, так что будьте осторожны со мной.

Это моя ситуация:

Я создаю сетевую игру на Python с использованием Twisted Framework. Игра подключается к главному серверу через TCP через один порт (соединение остается активным для аутентификации), и затем вы можете присоединиться к сетевому серверу через другой порт. В настоящее время программы сети и главного сервера работают на одном и том же удаленном компьютере.

Пока что почти все прекрасно работает, по крайней мере, при запуске игры через интерпретатор Python. В этом случае подключение к обоим серверам всегда работает нормально. Проблема начинается только после создания автономного исполняемого файла для клиента с py2exe.

На моем компьютере разработчика запуск исполняемого файла позволит мне запустить игру, подключиться к главному серверу и пройти аутентификацию на нем. Wireshark говорит мне, что связь поддерживается, и регулярно проводятся опросы ACK. Все идет нормально. Но когда я пытаюсь подключиться к сетевому игровому серверу (второе TCP-соединение на соседнем порту), результат противоречив. Примерно раз в сто это будет работать. Остальное время составляет около 50/50 между полным бездействием (Twisted не запускает никаких обратных вызовов) или возвратом сообщения «Тайм-аут пользователя вызвал сбой соединения». ошибка в течение полсекунды.

Самое смешное, что Wireshark даже не показывает никаких исходящих пакетов TCP для этих неудачных попыток подключения, независимо от того, возвращают ли они ошибку или ничего не делают.

Тогда это становится более странным, потому что когда я запускаю точно такой же исполняемый файл игрового клиента на моем другом тестовом компьютере, все работает нормально. Никаких проблем с подключением нет, просто каждый раз работает. На обеих машинах установлена ​​оригинальная Windows 7, на компьютере разработчика установлена ​​версия Professional, другая на Home Edition.

Следует также отметить, что запуск игрового сервера локально, даже на той же машине, что и клиент (подключение к «localhost»), не влияет на эту проблему - симптомы остаются такими же.

Так что же здесь может происходить?

1 Ответ

1 голос
/ 03 апреля 2011

Это похоже на проблему с вашим сетевым стеком Windows.Вы установили что-то, что намеренно нарушает работу сети, например AVG antivirus ?Если у вас есть, ваша сеть может быть повреждена:).

...