所以我只是在用python来处理套接字。我发现,根据getsockopt函数,将socket选项sou RECVBUF设置为N会使socket recv缓冲区变大2N字节。例如:
import socket
a, b = socket.socketpair()
a.setsockopt(socket.SOL_SOCKET, socket.SO_RCVBUF, 4096)
print a.getsockopt(socket.SOL_SOCKET, socket.SO_RCVBUF) #prints 8192
b.send('1'*5000)
print len(a.recv(5000)) #prints 5000 instead of 4096 or something else.
a.setsockopt(socket.SOL_SOCKET, socket.SO_RCVBUF, 8192)
print a.getsockopt(socket.SOL_SOCKET, socket.SO_RCVBUF) #prints 16384
有人能给我解释一下吗?我正在编写一个HTTP服务器,我想严格限制请求的大小,以保护我宝贵的稀缺内存量。在
在内部,这是在进行操作系统级操作,根据
man 7 socket
的说明如下:所以,你要
从这个奇妙的回答中大量复制了一个稍微不同的问题:https://stackoverflow.com/a/11827867/758446
相关问题 更多 >
编程相关推荐