Pythonでソケットのバッファサイズを変更する
バッファサイズを変更する。
コードは以下の通り:
# -*- coding: utf-8 -*- import socket def modify_buf_size(send_buf_size=1024, recv_buf_size=1024): sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM) bufsize = sock.getsockopt(socket.SOL_SOCKET, socket.SO_SNDBUF) # 送信バッファサイズの取得 print 'SEND Buffer size [Before]:%d' % bufsize bufsize = sock.getsockopt(socket.SOL_SOCKET, socket.SO_RCVBUF) # 受信バッファサイズの取得 print 'RECV Buffer size [Before]:%d' % bufsize # バッファサイズの変更 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 'SEND Buffer size [After]:%d' % bufsize bufsize = sock.getsockopt(socket.SOL_SOCKET, socket.SO_RCVBUF) print 'RECV Buffer size [After]:%d' % bufsize if __name__ == '__main__': modify_buf_size(send_buf_size=4096, recv_buf_size=4096)
実行結果は以下の通り:
bash-3.2$ python bufsize.py SEND Buffer size [Before]:131072 RECV Buffer size [Before]:131072 SEND Buffer size [After]:4096 RECV Buffer size [After]:4096
Beforeの欄の値は環境によって変わるはず。