zoukankan      html  css  js  c++  java
  • 系统的buffer 最小和最大值

    s = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
    SEND_BUF_SIZE = 167
    RECV_BUF_SIZE = 191
    s=socket.socket(socket.AF_INET,socket.SOCK_STREAM)
    s.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
    print s.getsockopt(socket.SOL_SOCKET, socket.SO_RCVBUF)
    print s.getsockopt(socket.SOL_SOCKET, socket.SO_SNDBUF)
    s.setsockopt( socket.SOL_SOCKET, socket.SO_SNDBUF, SEND_BUF_SIZE)
    s.setsockopt( socket.SOL_SOCKET, socket.SO_RCVBUF, RECV_BUF_SIZE)
    print s.getsockopt(socket.SOL_SOCKET, socket.SO_RCVBUF)
    print s.getsockopt(socket.SOL_SOCKET, socket.SO_SNDBUF)
    
    node2:/root/test#python t7.py 
    87380
    16384
    2280
    2048
    
    实际最小是 分别
    
    
    1588 #define SOCK_MIN_SNDBUF 2048
    1589 /*
    1590  * Since sk_rmem_alloc sums skb->truesize, even a small frame might need
    1591  * sizeof(sk_buff) + MTU + padding, unless net driver perform copybreak
    1592  */
    1593 #define SOCK_MIN_RCVBUF (2048 + sizeof(struct sk_buff))
    1594 
    
    
                    if (val > sysctl_wmem_max)
                            val = sysctl_wmem_max;
    set_sndbuf:
                    sk->sk_userlocks |= SOCK_SNDBUF_LOCK;
                    if ((val * 2) < SOCK_MIN_SNDBUF)
                            sk->sk_sndbuf = SOCK_MIN_SNDBUF;
                    else
                            sk->sk_sndbuf = val * 2;
    
    
    
    
    接收buffer 是2280-2048 = 232 来自sk_buff
    
    #include <linux/skbuff.h>       /* struct sk_buff */
  • 相关阅读:
    8-6实战蒙版
    8-5渐变及半透明蒙版
    8-4修改蒙版
    8-3建立蒙版
    imageNamed、imageWithContentsOfFile、imageWithData
    #import、#include、@class、@protocol、@interface
    JSON解析
    控制器的生命周期
    纯代码方式实现九宫格布局
    KVC笔记
  • 原文地址:https://www.cnblogs.com/hzcya1995/p/13348533.html
Copyright © 2011-2022 走看看