擅长:python、mysql、java
<p>正如Steffen所解释的,这是由于keep-alive。例如,如果使用谷歌,你会等很长时间。您可以修改代码并查看超时情况,如下所示:</p>
<pre><code># Payload remains the same
import socket as socket_module
from socket import *
def SendAndReceive(Host, Payload):
s = socket(AF_INET, SOCK_STREAM)
s.setsockopt(SOL_SOCKET, SO_REUSEADDR, 1)
# or you could do s.setblocking(0) for timeout of 0 seconds
s.settimeout(1)
s.connect(Host)
s.sendall(Payload)
tdata=[]
while True:
try:
data = s.recv(1024)
except socket_module.error:
# TIMEOUT
break
if not data:
break
tdata.append(data)
print ''.join(tdata)
return ''.join(tdata)
</code></pre>
<p>这样你就不会出错了。在</p>