网络信息检索函数

getsockopt函数用于获取套接字的选项,如接收和发送缓冲区大小。参数包括sockfd(文件描述符)、level(协议层次,如SOL_SOCKET)、optname(选项名称,如SO_RCVBUF和SO_SNDBUF)以及optval和optlen用于存储和指定选项值的大小。示例代码展示了如何获取并打印这两个缓冲区的大小。
摘要由CSDN通过智能技术生成
#include <sys/types.h>          /* See NOTES */
#include <sys/socket.h>
int getsockopt(int sockfd, int level, int optname,void *optval, socklen_t *optlen);
功能:
获取套接字选项
参数:
sockfd:
文件描述符
level:
协议层次
SOL_SOCKET  套接字层次
IPPROTO_IP   IP选项
IPPROTO_TCP  TCP选项 
optname:
选项名称,不同的协议层次有不同的选项名称如果要获取套接字层次的选项名称 通过man 7 socket查询
SO_BROADCAST 是否允许发送广播
SO_RCVBUF 获取接收缓冲区大小
SO_SNDBUF 获取发送缓冲区大小
SO_REUSEPORT  设置端口复用
SO_RCVTIMEO  设置接收超时时间
SO_SNDTIMEO  设置发送超时时间
optval:
获取到的选项的值
optlen:
optval的大小
返回值:
成功:
0
失败:
-1

//使用getsockopt获取接收和发送缓冲区大小
    int buf_byte;
    socklen_t len = sizeof(buf_byte);
    if(getsockopt(sockfd, SOL_SOCKET, SO_RCVBUF, &buf_byte, &len) == -1)
    {
        ERRLOG("getsockopt error");
    }

    printf("recv_buf = %dk\n", buf_byte/1024);

    if(getsockopt(sockfd, SOL_SOCKET, SO_SNDBUF, &buf_byte, &len) == -1)
    {
        ERRLOG("getsockopt error");
    }

    printf("send_buf = %dk\n", buf_byte/1024);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小徐的记事本

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值