【发布时间】:2014-02-16 00:00:27
【问题描述】:
我正在编写一个非常基本的 HTTP 客户端:
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 服务器。这段代码一定有问题..
标签: python sockets recv buffering