zoukankan      html  css  js  c++  java
  • getsockopt套接口选项

    1. getsockopt

    int getsockopt(int sockfd, int level, int optname, void *optval, socklen_t *optlen);
    int setsockopt(int sockfd, int level, int optname, const void *optval, socklen_t optlen);

    sockfd:一个标识套接口的描述字
    level:选项定义的层次。例如,支持的层次有SOL_SOCKET、IPPROTO_TCP
    optname:需获取的套接口选项
    optval:指针,指向存放所获得选项值的缓冲区
    optlen:指针,指向optval缓冲区的长度值

    2. struct sock
    Linux内部为每个socket所维护的一个struct sock这样一个对象

    struct sock
    {
        /* 其他字段 */
        int sk_rcvbuf;            /* 接受缓冲区大小 */
        atomic_t sk_rmem_alloc;   /* 已经申请的read memory */
        atomic_t sk_wmem_alloc;   /* 已经申请的write memory */
        int sk_sndbuf;            /* 发送缓冲区大小 */
        /* 其他字段 */
    };

    3. 实例

    int snd_buf_size = 0;
    socklen_t opt_size = sizeof(snd_buf_size);
    getsockopt(sock_fd, SOL_SOCKET, SO_SNDBUF, &snd_buf_size, &opt_size);
    printf("socket %d's sndbuf is %d bytes
    ", sock_fd, snd_buf_size);
  • 相关阅读:
    CF1137C Museums Tour(tarjan+DP)
    Educational Codeforces Round 65 (Rated for Div. 2)
    Codeforces Round #559(Div.1)
    委托
    类库
    is 和 as 运算符
    面向对象 接口
    抽象类
    面向对象 多态
    访问修饰符 程序集 静态方法
  • 原文地址:https://www.cnblogs.com/zhangxuechao/p/11709886.html
Copyright © 2011-2022 走看看