Python套接字连接超时问题

2024-10-04 09:17:37 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试编写一个连接到freenodeirc网络的简单脚本(irc.freenode.net在端口6667上)定期在信道上发布信息。为此,我使用Python套接字。这在过去一直很好地工作,但是现在我遇到了一个奇怪的问题:如果连接到插座的话,它需要花费非常长的时间来连接(它偶尔会超时)。但是,只有从文件运行脚本时才会发生这种情况。当直接输入到解释程序中时,效果很好:

>>> import socket
>>> def f():
>>>    s = socket.socket()
>>>    print("Connecting")
>>>    s.connect(('irc.freenode.net', 6667))
>>>    print("Connected")
>>>    s.close()
>>> f()

插座在一秒钟内接通,一切正常。但是,如果我将以下代码放入一个文件并运行python测试.py,它挂起s.connect并偶尔超时:

^{pr2}$

我以前从没遇到过这个问题。在我的网络上的其他计算机上也会发生这种情况(可能是网络问题?)。我使用的是python3.2。谢谢。在


Tags: 端口网络脚本信息netircconnect情况
1条回答
网友
1楼 · 发布于 2024-10-04 09:17:37

网络总是有间歇性的问题,您的代码需要处理这些问题。我建议采取两个层次的行动。首先,在socket.create_connection上使用timeout=参数,等待一段时间后再放弃。然后将插座开口放在tryexcept socket.timeout对中,然后重试几次,可能在重试之间睡一两秒钟。在

相关问题 更多 >