一. 两个API 和 一些选项
getsockopt 和 setsockopt
getsockopt把对套接字的操作放入到optval中
setsockopt对套接字设置操作
SO_BROADCAST
开启/禁止广播
SO_DEBUG
SO_DONTROUTE
饶过底层协议的正常路由机制.
SO_KEEPALIVE
设置此选项后,2小时内无数据报交换的话,tcp会检测对端是否存活.
SO_LINGER
1. linger结构体
2. close的默认操作
3.设置SO_LINGER,且l_linger为正值时的close
4.设置SO_LINGER,且l_linger为偏小正值时的close
SO_REVBUF && SO_SNDBUF
接受窗口和发送窗口
SO_RCVLOWAT && SO_SNDLOWAT
让select返回可读/可写时套接字接受缓冲区中所需的数据量
SO_RCVTIMEO && SO_SNDTIMEO
设置超时值
SO_REUSEADDR && SO_REUSEPORT
重用端口和地址
TCP_MAXSEG
设置MSS
TCP_NODELAY
禁止TCP的Nagle算法
二.fcntl函数
笔记
设置
#include <fcntl.h>
int flags = fcntl(fd,F_GETFL,0);
flags |= B_NONBLOCK;
fcntl(fd,F_SETFL,flags);
取消
flags &= ~O_NONBLOCK;
fcntl(fd,S_SETFL,flags);
三.常用API与三握四挥的关系
看笔记去吧.