py2exe之后使用Twisted连接失败不一致

时间:2011-03-08 21:12:03

标签: python networking timeout twisted ogre

我的第一个问题,所以请放轻松。

这是我的情况:

我正在使用Twisted框架在Python中创建一个联网游戏。游戏在一个端口上通过TCP连接到主服务器(连接保持活动状态以进行身份​​验证),然后您可以在另一个端口上加入网络服务器。目前,网络和主服务器程序都在同一台远程计算机上运行。

到目前为止,几乎所有事情都很有效,至少在通过Python解释器运行游戏时。在这种情况下,连接到两台服务器总能正常工作。该问题仅在使用py2exe为客户端创建独立可执行文件后开始。

在我的开发机器上,运行可执行文件将允许我启动游戏,连接到主服务器并使用它进行身份验证。 Wireshark告诉我,连接保持活跃,并且正在进行定期民意调查。到现在为止还挺好。但是当我尝试连接到网络游戏服务器(相邻端口上的第二个TCP连接)时,结果是不一致的。大约一百次它会起作用。其余的时间大约是50/50之间什么都不做(Twisted不会触发任何回调),或者返回“用户超时导致连接失败”。半秒钟内出错。

有趣的是,Wireshark甚至没有为这些失败的连接“尝试”显示任何传出的TCP数据包,无论它们是返回错误还是什么都不做。

然后它变得更加怪异,因为当我在其他测试机上运行完全相同的游戏客户端可执行文件时,一切正常。没有任何连接问题,它只是每次都有效。两台机器都运行原始的Windows 7,开发机器是专业版,另一台是Home Edition。

我还应该指出,在本地运行游戏服务器,即使在与客户端相同的机器上(连接到“localhost”)也没有影响这个问题 - 症状保持不变。

那么可能会发生什么?

1 个答案:

答案 0 :(得分:1)

这听起来像是Windows网络堆栈的问题。您是否安装了故意破坏网络的内容,例如AVG antivirus?如果有,您的网络可能会被破坏:)。