套接字属性的获取与设置

一、基本概念

        设置套接字的选项对套接字进行控制

        除了设置选项外,还可以获取选项

        选项的概念相当于属性,所以套接字选项也可说是套接字属性

        有些选项(属性)只可获取,不可设置;

        有些选项既可设置也可获取

1.选项级别

SOL_SOCKET    该级别的选项只作用于套接字本身

SOL_LRLMP    该级别的选项作用于IrDA协议

IPPROTO_IP    该级别的选项作用于IPv4协议

IPPROTO_IPV6  该级别的选项作用于IPv6协议

IPPROTO_RM  该级别的选项作用于可靠的多播传输

IPPROTO_TCP  该级别的选项适用于流式套接字

IPPROTO_UDP  该级别的选项适用于数据报套接字

2.SOC_SOCKET的常用选项

选项名称

说明

获取/设置

SO_ACCEPTCONN

套接字是否处于监听状态

获取

SO_BROADCAST

允许发送广播数据

两者都可

SO_DEBUG

允许调试

两者都可

SO_DONTROUTE

不查找路由

两者都可

SO_ERROR

获得套接字错误

获取

SO_KEEPALIVE

保活连接

两者都可

SO_LINGER

延迟关闭连接

两者都可

SO_OOBINLINE

带外数据放入正常数据流

两者都可

SO_RCVBUF

接收缓冲区大小

两者都可

SO_SNDBUF

发送缓冲区大小

两者都可

SO_REUSERADDR

允许重用本地地址和端口

两者都可

SO_TYPE

获得套接字类型

获取

IP_ADD_MEMBERSHIP

加入一个多播组

设置

IP_OPTIONS

获取或设置IP头部内的选项

两者都可

IP_HDRINCL

用户在用户数据前面提供 IP 标头(用于原始套接字)

两者都可

IP_TTL

IP TTL相关

两者都可

二、getsockopt获取套接字选项

#include <sys/types.h>/* See NOTES */

#include <sys/socket.h>

int setsockopt(int sockfd,int level,int optname,

const void *optval, socklen_t optlen);

/*

sockfd:套接字描述符

level:表示选项的级别

optname:表示要设置的选项名称

optval:指向存放接收到的选项内容的缓冲区

optlen:指向optval所指缓冲区的大小

函数返回值:执行成功返回0,否则返回‒1,errno来获取错误码*/

三、setsockopt设置套接字选项

#include <sys/types.h>/* See NOTES */

#include <sys/socket.h>

int setsockopt(int sockfd,int level,int optname,

const void *optval, socklen_t optlen);

/*

sockfd:套接字描述符

level:表示选项的级别

optname:表示要设置的选项名称

optval:指向存放接收到的选项内容的缓冲区

optlen:指向optval所指缓冲区的大小

函数返回值:执行成功返回0,否则返回‒1,errno来获取错误码*/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值