SO_SNDBUF 发送缓冲区大小 int
设置发送缓冲区保留大小
与 SO_MAX_MSG_SIZE 或TCP滑动窗口无关如果一般发送
包很大很频繁
那么解决这个选项
每个套接口都一个发送缓冲区和一个接收缓冲区
接收缓冲区被TCP和UDP用来将接收到
数据一直保存到由解决进程来读
TCP:TCP通告另一端
窗口大小
TCP套接口接收缓冲区不可能溢出
因为对方不允许发出超过所通告窗口大小
数据
这就
TCP
流量控制
如果对方无视窗口大小而发出了超过宙口大小
数据
则接 收方TCP将丢弃它
UDP:当接收到
数据报价装不进套接口接收缓冲区时
此数据报价就被丢弃
UDP
没
流量控制
;快
发送者可以很容易地就淹没慢
接收者
导致接收方
UDP丢弃数据报价
SO_RCVLOWAT 接收缓冲区下限 int
SO_SNDLOWAT 发送缓冲区下限 int
每个套接口都一个接收低潮限度和一个发送低潮限度
它们
函数selectt解决
接收低潮限度
让select返回“可读”而
套接口接收缓冲区中必须
数据总量
——对于一个TCP或UDP套接口
此值缺省为1
发送低潮限度
让select返回“可写” 而
套接口发送缓冲区中必须
可用空间
对于TCP套接口
此值常缺省为2048
对于UDP解决低潮限度
由于其发送缓冲区中可用空间
字节数
从不变化
只要 UDP套接口发送缓冲区大小大于套接口
低潮限度
这样
UDP套接口就总
可写
UDP没
发送缓冲区
只
发送缓冲区
大小
SO_RCVTIMEO 接收超时 struct timeval
SO_SNDTIMEO 发送超时 struct timeval
SO_REUSERADDR 允许重用本地地址和端口 int
充许绑定已被解决地址(或端口号)
可以办法bind
man
SO_EXCLUSIVEADDRUSE
独占模式解决端口就
不充许和其它源代码解决SO_REUSEADDR共享
解决某一端口
确定多重绑定解决谁
时候
根据一条原则
谁
指定最明确则将包递交给谁
而且没
权限之分
也就
说低级权限
用户
可以重绑定
高级权限如服务启动
端口上
这
非常重大
一个安全隐患
如果不想让自己源代码被监听那么解决这个选项
SO_TYPE 获得套接字类型 int
SO_BS数码相机OMPAT 与BSD系统兼容 int
==========================================================================
IPPROTO_IP
--------------------------------------------------------------------------
IP_HDRINCL 数据包中包含IP首部 int
这个选项常用于黑客技术中隐藏自己
IP地址
IP_OPTINOS IP首部选项 int
IP_TOS 服务类型
IP_TTL 生存时间 int
以下IPV4选项用于组播
IPv4 选项 数据类型 描 述
IP_ADD_MEMBERSHIP struct ip_mreq 加入到组播组中
IP_ROP_MEMBERSHIP struct ip_mreq 从组播组中退出
IP_MULTICAST_IF struct ip_mreq 指定提交组播报价文接口
IP_MULTICAST_TTL u_char 指定提交组播报价文TTL
IP_MULTICAST_LOOP u_char 使组播报价文环路效或无效
头文件中定义了ip_mreq结构:
[code:1:63724de67f]
struct ip_mreq {
struct in_addr imr_multiaddr; /* IP multicast address of group */
struct in_addr imr_interface; /* local IP address of interface */
};
[/code:1:63724de67f]
若进程要加入到一个组播组中用soket
setsockopt()函数发送该选项
该选项类型
ip_mreq结构
它
第一个字段imr_multiaddr指定了组播组
地址
第二个字段imr_interface指定了接口
IPv4地址
IP_DROP_MEMBERSHIP
该选项用来从某个组播组中退出数据结构ip_mreq
解决办法与上面相同
IP_MULTICAST_IF
该选项可以修改网络接口结构ip_mreq中定义新
接口
IP_MULTICAST_TTL
设置组播报价文数据包
TTL(生存时间)
默认值
1
表示数据包只能
本地
子网中传送
IP_MULTICAST_LOOP
组播组中成员自己也会收到它向本组发送
报价文
这个选项用于抉择
否激活这种状态