Python套接字连接超时问题

Python套接字连接超时问题,python,sockets,python-3.x,Python,Sockets,Python 3.x,我正在尝试编写一个简单的脚本,连接到freenode IRC网络(端口6667上的IRC.freenode.net),定期在通道上发布信息。为此,我使用Python套接字。这在过去工作得很好,但是现在我遇到了一个奇怪的问题:如果插座真的连接起来,它需要很长的时间(偶尔会超时)。但是,只有从文件运行脚本时才会发生这种情况。直接输入解释程序时,它可以正常工作: >>> import socket >>> def f(): >>> s = s

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

>>> import socket
>>> def f():
>>>    s = socket.socket()
>>>    print("Connecting")
>>>    s.connect(('irc.freenode.net', 6667))
>>>    print("Connected")
>>>    s.close()
>>> f()
插座在大约一秒钟内连接,一切正常。但是,如果我将以下代码放入一个文件并运行python test.py,它将挂起
s.connect
,偶尔会超时:

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

我以前从未遇到过这个问题。这也发生在我网络上的其他计算机上(可能是网络问题?)。我正在使用Python 3.2。谢谢

网络总是有间歇性问题,您的代码需要处理这些问题。我建议采取两个层次的行动。首先,在
socket上使用
timeout=
参数。创建\u连接
在放弃之前等待更长的时间。然后将套接字开口放入一个
try
套接字除外。超时
对,然后重试几次,可能在重试之间休眠一秒或两秒

谢谢你的回答。我之所以认为这是Python的问题,是因为我可以使用irc客户机(irssi)进行良好的连接。我还运行了一个到irc.freenode.net的跟踪路由,没有发现任何主要的瓶颈。如果你认为你发现了一个可复制的bug,那么你应该在