【读书笔记】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()语义的影响。
相关文章
|
6月前
|
Java Windows 容器
技术经验分享:IOCP详解
技术经验分享:IOCP详解
|
网络协议 Java API
【网络原理】网络编程Socket套接字基础知识汇总
【网络原理】网络编程Socket套接字基础知识汇总
109 0
|
网络协议 安全 Linux
Linux网络学习
Linux网络学习
|
存储 网络协议 Linux
Linux网络-套接字编程
本章就Linux网络编程进行概念及接口学习,并能够简单的进行上手网络套接字编程
Linux网络-套接字编程
|
存储 网络协议 Java
端午节学习<网络编程套接字socket>贼cool好吧
端午节学习<网络编程套接字socket>贼cool好吧
153 0
端午节学习<网络编程套接字socket>贼cool好吧
|
网络协议 网络架构 Windows
原来这才是 Socket!
之前的计算机网络系列文章中没有详细介绍 Socket ,这篇文章我们来聊一下 Socket。 关于对 Socket 的认识,大致分为下面几个主题,Socket 是什么,Socket 是如何创建的,Socket 是如何连接并收发数据的,Socket 套接字的删除等。
原来这才是 Socket!
|
网络协议 Unix Linux
Linux网络协议栈(一)——Socket入门(1)
1、TCP/IP参考模型为了实现各种网络的互连,国际标准化组织(ISO)制定了开放式系统互连(OSI)参考模型。尽管OSI的体系结构从理论上讲是比较完整的,但实际上,完全符合OSI各层协议的商用产品却很少进入市场。
1112 0
|
网络协议 Unix Linux
Linux网络协议栈(一)——Socket入门(2)
3、套接字的实现套接字最先是在UNIX的BSD版本实现的,所以也叫做BSD套接字,它隐藏了各个协议之间的差异,并向上提供统一的接口。Linux中实现套接字的基本结构:3.1、BSD套接字3.1.1、核心数据结构为了实现BSD套接字,内核提供一个重要的数据结构struct socket,它的定义如下:  //BSD套接字(include/linux/net.
975 0
|
网络协议 算法 数据库
经过一年时间的沉淀 再次回首 TCP Socket服务器编程 (二)
------------------ 前言 ------------------ 发了第一篇文章后,有不少同志留言,看来socket编程仍然是软件系统里面一个比较难的部分。 第一篇文章主要介绍了传输协议的设计,这个是整个socket框架最底层基础的部分,接下来整个socket服务器大楼都将在这个协议设计基础上不断搭建出来。
791 0
|
Windows
[转载]Windows网络编程系列教程之四:Select模型
原文:http://www.51see.com/asp/bbs/public/bp_show.asp?t_id=200308131152297103讲一下套接字模式和套接字I/O模型的区别。先说明一下,只针对Winsock,如果你要骨头里挑鸡蛋把UNIX下的套接字概念来往这里套,那就不关我的事。
892 0