在Linux网络编程中有时需要设置地址复用,允许发送广播包将主机加入某个多播组,设置发送与接收缓冲区的大小设置发送与接收的超时时间,将套接字绑定到某个接ロ上,发送TCP探测包查看客户端是否保持连接等这些都需要对套接字选项进行设置.而对套接字选项进行操作的主要有以下两个函数,setsockopt与getsockopt. 这两个函数不仅能够操作套接字层,而且能够操作IP层与TCP层.
optval-所操作的缓冲区即参数缓冲区
optlen-传入参数的最大长度的指针(返回参数的实际长度)
函数执荇成功返回0,失败返回-1.
level-套接字所在的层
optval-所操作的缓冲区指针
optlen-所传入参数的实际长度
函数执行成功返回0,失败返回-1.
套接字的一些选项值如下表所礻:
周期性测试连接是否存活 | ||||||
若有数据待发送则延迟关闭 | ||||||
让接收到的带外数据继续在线存放 | ||||||
路由套接口取得所发送数据的拷贝 | ||||||
指定传递的ICMPv6消息类型 | ||||||
原始套接口的校验和字段偏移 | ||||||
控测对方是否存活前连接闲置秒数 | ||||||
3.套接字选项设置实例
//获取与设置套接字选项的函数
本文主要介绍了套接字选项设置的相关函数,以及套接字层(SOL_SOCKET),IP层(IPPROTO_IP)与TCPP层(IPPROTO_TCP)选项的含义,最后给出一个具体的例子来设置和得到套接字选项的值. 套接字选项的设置在廣播和多播以及原始套接字直接得到IP包等方面有着重要的应用.