2016-08-19 55 views
0

我有一个脚本,我目前正在编写通过端口25连接到主机。一旦连接下面的代码用于读取文本文件来收集每个用户,然后发出VRFY命令以及用户名。这真的很好,直到我没有收到主机的回应,它只是挂在那里。迈向我的代码的底部,我试图打破如果没有收到响应,但这不起作用。我尝试了几种方法让它在没有任何运气的情况下运行。Python - s.recv挂起超时

提前致谢!

with open('usernames.txt') as f: 
    for users in f: 
     if users == '': 
      break 
     else: 
      try: 
       s.send('VRFY ' + users) 
       result=s.recv(1024) 
       print result 
      except socket.timeout: 
       print IPADDRESS + ' is not responding to VRFY commands' 
       break 
+0

请求数量多吗?由于请求数量太大,服务器可能正在关闭连接。我与SSH服务器有类似的行为(http://stackoverflow.com/questions/25609153/paramiko-error-reading-ssh-protocol-banner)在这种情况下,尝试睡眠之间的请求/到达另一台服务器 – FunkySayu

+0

您可以调整超时? –

+0

目前没有,我只限于一个请求。我认为服务器设置为不响应请求,所以我认为我需要让它超时。 – user826436

回答

0

是的,谢谢你,settimeout工作的一种享受!我也使用了一个优秀的方法来抓住它。感谢大家!