我正在查看 Python 中的一些代码(我对 Python 一无所知),我遇到了这部分:
def do_req(body):
global host, req
data = ""
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.connect((host, 80))
s.sendall(req % (len(body), body))
tmpdata = s.recv(8192)
while len(tmpdata) > 0:
data += tmpdata
tmpdata = s.recv(8192)
s.close()
return data
然后稍后使用巨大的主体调用它,如超过 500,000 字节。这将发送到 Apache 服务器,该服务器的最大请求大小默认为 8190 字节。
我的问题是“ s.sendall()
”部分发生了什么?显然整个身体不能一次发送,我猜它是通过模运算符减少的。不过,我不知道它在 Python 中是如何工作的。谁能解释一下?谢谢。