[python&php 网络编程]socket缓冲区大小设置

来源:互联网 发布:山西软件定做开发 编辑:程序博客网 时间:2024/06/07 01:56

1.python

import socketSEND_BUF_SIZE = 4096RECV_BUF_SIZE = 4096def modify_buff_size():    sock = socket.socket( socket.AF_INET, socket.SOCK_STREAM )        # Get the size of the socket's send buffer    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" %bufsizeif __name__ == '__main__':    modify_buff_size()

2.php

<?php$send_buf_size = 4096;$recv_buf_size = 4096;function modify_buff_size($send_buf_size, $recv_buf_size){    $socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);    # Get the size of the socket's send buffer    $bufsize = socket_get_option($socket, SOL_SOCKET, SO_SNDBUF);    printf("Buffer size [Before]:%d\n", $bufsize);    $socket.socket_set_option($socket, SOL_SOCKET, TCP_NODELAY, 1);    $socket.socket_set_option($socket, SOL_SOCKET, SO_SNDBUF, $send_buf_size);    $socket.socket_set_option($socket, SOL_SOCKET, SO_RCVBUF, $recv_buf_size);    $bufsize = socket_get_option($socket, SOL_SOCKET, SO_SNDBUF);    printf("Buffer size [After]:%d\n", $bufsize);}modify_buff_size($send_buf_size, $recv_buf_size);


socket的缓冲区太小 则tcp窗口不能完全打开,影响性能,缓冲区太大,则浪费内存,因此缓冲区设置合适大小还是很有必要的

对于socket缓冲区大小的设置 python和php都有类似的方法直接操作~

转载请标注原文地址:http://blog.csdn.net/ddjohn/article/details/49993155

1 0
原创粉丝点击