【读书笔记】setsockopt

简介: setsockopt   设置套接口的选项。 #include #include int setsockopt(int sockfd, int level, int optname, const void *optval, socklen_t optlen); sockfd:标识一个套接口的描述字。

setsockopt

 
设置 套接口的选项。
#include < sys/types.h>
#include <sys/socket.h>
int  setsockopt(int sockfd, int level, int optname,
const void *optval, socklen_t optlen);
sockfd:标识一个 套接口的描述字。
level:选项定义的层次;支持SOL_SOCKET、IPPROTO_TCP、IPPROTO_IP和IPPROTO_IPV6。
optname:需设置的选项。
optval: 指针,指向存放选项值的 缓冲区
optlen:optval 缓冲区长度。
linux 内核中定义为:
static int  setsockopt(struct  socket *sock,
int lvl, int opt, char __user *ov, unsigned int ol);
setsockopt- set socketoption
@sock: socketstructure
@lvl: option level
@opt: option identifie
@ov: pointer to new option value
@ol: length of option value
For stream sockets only, accepts and ignores all IPPROTO_TCP options  (to ease compatibility). Returns 0 on success, errno otherwise

编辑本段注释

setsockopt() 函数用于任意类型、任意状态 套接口的设置选项值。尽管在不同协议层上存在选项,但本 函数仅定义了最高的“ 套接口”层次上的选项。选项影响 套接口的操作,诸如加急数据是否在普通数据流中接收,广播数据是否可以从套接口发送等等。
有两种 套接口的选项:一种是布尔型选项,允许或禁止一种特性;另一种是整形或结构选项。允许一个布尔型选项,则将optval指向非零整形数;禁止一个选项optval指向一个等于零的整形数。对于布尔型选项,optlen应等于sizeof(int);对其他选项,optval指向包含所需选项的整形数或结构,而optlen则为整形数或结构的长度。SO_LINGER选项用于控制下述情况的行动: 套接口上有排队的待发送数据,且 closesocket()调用已执行。参见close socket() 函数中关于SO_LINGER选项对 closesocket()语义的影响。
相关文章
|
1月前
|
网络协议 安全 网络安全
Python网络编程详解:Socket套接字的使用与开发
探索Python网络编程:本文详述Socket套接字,关键组件用于设备间通信。理解Socket类型(TCP/UDP),学习创建、绑定、监听、发送/接收数据步骤。示例展示服务端和客户端实现,及Socket聊天室应用。了解并发处理、错误处理和网络安全。通过学习,提升网络应用开发技能。参考书籍深入学习。
124 2
|
1月前
|
网络协议 网络性能优化 开发者
Python网络编程基础(Socket编程)UDP Socket编程
【4月更文挑战第8天】Python网络编程中,UDP与TCP协议各有特点。TCP提供可靠连接,确保数据顺序与完整性,适合文件传输等;UDP则无连接,速度快,常用于实时音视频,牺牲了数据可靠性。Python的socket库支持两者,开发者可根据需求选择。
|
7月前
|
存储 网络协议 API
14.1 Socket 套接字编程入门
Winsock是Windows操作系统上的套接字API,用于在网络上进行数据通信。套接字通信是一种允许应用程序在计算机网络上进行实时数据交换的技术。通过使用Windows提供的API,应用程序可以创建一个套接字来进行数据通信。这个套接字可以绑定到一个端口,以允许其他应用程序连接它。另外,Winsock可以使用TCP/IP、UDP等协议来完成不同类型的数据传输任务。在网络应用程序开发中,套接字通信可以帮助应用程序开发者实现客户端/服务端模型,并实现数据的可靠传输。一般套接字通信需要经历,创建套接字(Socket),绑定(Bind),监听(Listen),接受(Accept),连接(Connect
36 0
14.1 Socket 套接字编程入门
|
12天前
|
网络协议 算法 网络架构
Python网络编程之udp编程、黏包以及解决方案、tcpserver
Python网络编程之udp编程、黏包以及解决方案、tcpserver
|
1月前
|
Python
Python网络编程基础(Socket编程)UDP服务器编程
【4月更文挑战第8天】Python UDP服务器编程使用socket库创建UDP套接字,绑定到特定地址(如localhost:8000),通过`recvfrom`接收客户端数据报,显示数据长度、地址和内容。无连接的UDP协议使得服务器无法主动发送数据,通常需应用层实现请求-响应机制。当完成时,用`close`关闭套接字。
|
6月前
|
网络协议 Python
140 python网络编程 - socket简介
140 python网络编程 - socket简介
31 0
|
9月前
|
网络协议 Java API
【网络原理】网络编程Socket套接字基础知识汇总
【网络原理】网络编程Socket套接字基础知识汇总
|
缓存 Linux
linux网络编程(五)epoll进阶
linux网络编程(五)epoll进阶
102 0
|
XML JSON 网络协议
这篇文章带你读懂Socket,让你知道什么是Socket?
这篇文章带你读懂Socket,让你知道什么是Socket?
这篇文章带你读懂Socket,让你知道什么是Socket?
|
存储 网络协议 Java
端午节学习<网络编程套接字socket>贼cool好吧
端午节学习<网络编程套接字socket>贼cool好吧
125 0
端午节学习<网络编程套接字socket>贼cool好吧