很多情况下,默认的套节字缓冲区大小可能不够用。因此我们可以想办法去修改默认缓存区大小,改成一个合适的值。
我们使用的方法是利用套节字对象的setsocketopt( )的方法修改默认的套节字缓冲区大小。
首先我们定义两个常量:SEND_BUF_SIZE和RECV_BUF_SIZE。然后在一个函数中调用套节字的实例setsocketopt( )方法。以下是具体代码:
SEND_BUF_SIZE = 4096
RECV_BUF_SIZE = 4096
def modify_buff_size():
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
bufsize = sock.getsockopt(socket.SOL_SOCKET, socket.SO_SNDBUF)
print "Buffer size [Before] :%d" %bufsize
sock.setsockopt(socket.SOL_TCP, socket.TCP_NODELAY, 1)
sock.setsockopt(
socket.SOL_SOCKET,
socket.SO_SNDBUF,
SEND_BUF_SIZE
)
sock.setsockopt(
socket.SOL_SOCKET,
socket.SO_RCVBUF,
RECV_BUF_SIZE
)
bufsize = sock.getsockopt(socket.SOL_SOCKET, socket.SO_SNDBUF)
print "Buffer size [After] :%d" %bufsize
if __name__ == '__main__':
modify_buff_size()
运行结果: