Я пишу очень простой клиент HTTP:Python Recv() глохнет
import socket
from socket import *
Payload = """GET /test.html HTTP/1.1
Accept: */*
Accept-Language: en-us
User-Agent: Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0)
Accept-Encoding: gzip, deflate
Proxy-Connection: Keep-Alive
Host: example.com
Pragma: no-cache
"""
def SendAndReceive(Host, Payload):
s = socket(AF_INET, SOCK_STREAM)
s.setsockopt(SOL_SOCKET, SO_REUSEADDR, 1)
s.connect(Host)
s.sendall(Payload)
tdata=[]
while True:
data = s.recv(1024)
if not data:
break
tdata.append(data)
print ''.join(tdata)
return ''.join(tdata)
SendAndReceive(("www.example.com",80),Payload)
По некоторым причинам, RECV() глохнет на некоторое время (~ 10 сек), затем возвращает данные. Я не уверен, что не так с моим кодом, любая помощь будет принята с благодарностью.
Спасибо!
Это происходит со всеми HTTP-серверами или с любым конкретным сервером? –
Со всеми HTTP-серверами. В этом коде должно быть что-то не так. – n00bz0r