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

14 篇文章 0 订阅

1.python

import socket

SEND_BUF_SIZE = 4096
RECV_BUF_SIZE = 4096

def 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" %bufsize

if __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
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值