【TCP/IP网络编程】:09套接字的多种可选项

本篇文章主要介绍了套接字的几个常用配置选项,包括SO_SNDBUF & SO_RCVBUF、SO_REUSEADDR及TCP_NODELAY等。

套接字可选项和I/O缓冲大小

前文关于套接字的描述仅仅是使用其默认套接字特性来进行数据通信,这对于简单的使用场景来说似乎是可以的,然而实际工作场景中的确需要配置相关套接字选项来满足一些特殊需求。下图所示是一些常用的套接字可选配置选项。

【TCP/IP网络编程】:09套接字的多种可选项

 一些常用套接字可配置选项

从图中可以看出,套接字可选项是分层的。IPPROTO_IP层可选项是IP协议相关事项,IPPROTO_TCP层可选项是TCP协议相关事项,SOL_SOCKET层是套接字相关的通用可选项。

getsockopt & setsockopt

针对上文所描述的套接字可选项,可分别通过getsockopt函数和setsockopt函数来进行读取(Get)和设置(Set)(有些选项可能仅支持一种操作)。

#include <sys/socket.h> //Get option int getsockopt(int sock, int level, int optname, void *optval, socklen_t *optlen); -> 成功时返回0,失败时返回-1 //Set option int setsockopt(int sock, int level, int optname, void *optval, socklen_t optlen); -> 成功时返回0,失败时返回-1

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zwyyxf.html