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 */
  • 相关阅读:
    hdu2138(求素数)
    hdu2104
    poj1664(放苹果)
    数塔问题给你有哪些启示?
    汉诺塔问题(1)
    算法的力量(转李开复)
    最长子序列问题之系列一
    forward和redirect的区别
    group by 和having
    java中的多态三要素是什么?
  • 原文地址:https://www.cnblogs.com/hzcya1995/p/13348533.html
Copyright © 2011-2022 走看看