Unix网络编程---套接字联网API chapter 7

1 获取和设置影响套接字的选项

1)getsockopt函数和setsockopt函数

2)fcntl函数

把套接字设置为非阻塞式IO或信号驱动式IO以及设置套接字属主的POSIX方法

3)ioctl函数

2 getsockopt和setsockopt

套接字选项粗分为2大类型:

1 启用或禁用某个特性的二元选项(标志选项)

2 取得并返回可以设置或检查的特定值的选项

3 套接字状态

4 通用套接字选项

1)SO_BROADCAST选项

本选项开启或禁止进程发送广播消息的能力。只有数据套接字支持广播,并且还必须是在支持广播消息的网络上。

2)SO_DEBUG选项

3)SO_ERROR选项

是一个可以获取但无法设置的套接字选项

4)SO_KEEPALIVE选项

给一个TCP套接字设置保持存活选项后,如果2个小时内在该套接字的任一方向上无数据交换,TCP会自动给对端发送一个保持存活探测分节,这是一个对端必须响应的TCP分节。

5)SO_LINGER选项

参照这里

6)SO_RCVBUF和SO_SNDBUF选项

背景:

这2个套接字选项允许我们改变接收缓冲区和发送缓冲区中的默认大小。早期默认为4096字节,后面可以是8192-61440之间的任意值。

TCP套接字缓冲区大小至少应该是相应连接的MSS值的四倍。典型的缓冲区大小默认值为8192字节或更大。典型的MSS值为512或1460.

7)SO_RCVLOWAT和SO_SNDLOWAT选项

8)SO_RCVTIMEO和SO_SNDTIMEO套接字选项

9)SO_REUSEADDR和SO_REUSEPORT选项

SO_REUSEADR四个功能:

1 允许启动一个监听服务器并捆绑其众所周知端口,即使以前建立的将该端口用作它们本地端口的连接依然存在

2 允许在同一个端口上启动同一服务器的多个实例,只要每个实例绑定不同的本地IP即可

对于TCP来说,绝不可能启动捆绑相同IP地址和相同端口号的多个服务器,这是完全重复的捆绑。

SO_REUSEPORT

5 TCP套接字选项

TCP有2个套接字选项,它们的级别为IPPROTO_TCP

1)TCP_MAXSEG套接字选项

本选项允许我们获取或设置TCP连接的最大分节大小MSS,返回值是我们的TCP可以发送给对端的最大数据,它通常是由对端使用SYN分节通告的MSS。

2)TCP_NODELAY套接字选项

开启该选项将禁止TCP的Nagle算法,默认下该算法是启动的。

6 fcntl函数

该函数可以执行各种描述符控制操作。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值