socket编程(2)套接字选项

socket中有四个函数是与套接字本身的一些属性有关

1.getsockopt与setsockeopt函数,这两个函数分别可以得到、设置当前socket的一些属性,还包括一些当前的底层协议(如tcp)的属性(如包的大小)。

2.ioctlsocket函数:用于控制套接字的I/O行为,如设置成锁定或非锁定的状态

时间: 2024-11-29 07:04:17

socket编程(2)套接字选项的相关文章

UNIX网络编程:套接字选项(SOL_SOCKET级别)

#include <sys/socket.h> int setsockopt( int socket, int level, int option_name,const void *option_value, size_t option_len); 第一个参数socket是套接字描述符. 第二个参数level是被设置的选项的级别,如果想要在套接字级别上设置选项,就必须把level设置为SOL_SOCKET. 第三个参数 option_name指定准备设置的选项,option_name可以有哪些

UNIX网络编程:套接字选项(心跳检测、绑定地址复用)

01./* 设置套接字选项周期性消息检测连通性 心跳包. 心博.主要用于长连接. 02. * 参数:套接字, 1或0开启, 首次间隔时间, 两次间隔时间, 断开次数 03. */ 04.void setKeepAlive( int iSockfd , int iSockAttrOn, socklen_t iIdleTime , socklen_t iInterval , socklen_t iCount ){ 05. setsockopt( iSockfd , SOL_SOCKET , SO_K

UNIX网络编程:套接字选项(SO_REUSEADDR)

1.一般来说,一个端口释放后会等待两分钟之后才能再被使用,SO_REUSEADDR是让端口释放后立即就可以被再次使用. SO_REUSEADDR用于对TCP套接字处于TIME_WAIT状态下的socket,才可以重复绑定使用.server程序总是应该在调用bind()之前设置SO_REUSEADDR套接字选项.TCP,先调用close()的一方会进入TIME_WAIT状态 2.SO_REUSEADDR和SO_REUSEPORT SO_REUSEADDR提供如下四个功能: 当有一个有相同本地地址和

Linux套接字编程之套接字选项

套接字机制提供了两个套接字选项接口来控制套接字的行为.一个接口用来设置选项,另外一个接口用来允许我们请求选项的状态.我们可以获得以及设置三种类型的选项. 1.通用选项,可以工作在所有的套接字类型. 2.在套接字层次上面进行管理的选项,但是依赖底部协议的支持. 3.和每个协议相关的协议选项. Single UNIX Specification 只定义了套接字层的选项(上面所提到的前面两项) 我们可以通过setsockopt函数来设置套接字选项. #include <sys/socket.h> i

UNIX网络编程:套接字选项(SO_RCVBUF和SO_SNDBUF)

有时候我们需要控制套接字的行为(如修改缓冲区的大小),这个时候我们就要学习套接字选项. int getsockopt(int sockfd,int level,int optname,void *optval,socklen_t *optlen) int setsockopt(int sockfd,int level,int optname,const void *optval,socklen_t *optlen) level指定控制套接字的层次.可以取三种值: SOL_SOCKET:通用套接字

UNIX网络编程:套接字选项(setsockopt)

setsockopt的一些用法: close socket(一般不会立即关闭而经历TIME_WAIT的过程)后想继续重用该socket: BOOL bReuseaddr=TRUE; setsockopt(s,SOL_SOCKET ,SO_REUSEADDR,(const char*)&bReuseaddr,sizeof(BOOL)); 如果要已经处于连接状态的soket在调用close socket后强制关闭,不经历TIME_WAIT的过程: BOOL bDontLinger = FALSE;

UNIX网络编程:常用的套接字选项

1.设置/获取套接字选项 int setsockopt(int socket, int level, int option_name, const void *option_value, socklen_t option_len); int getsockopt(int socket, int level, int option_name, void *restrict option_value, socklen_t *restrict option_len); 2.常用套接字选项的运用 SO_

[python] 专题七.网络编程之套接字Socket、TCP和UDP通信实例

        很早以前研究过C#和C++的网络通信,参考我的文章:                  C#网络编程之Tcp实现客户端和服务器聊天                 C#网络编程之套接字编程基础知识                 C#网络编程之使用Socket类Send.Receive方法的同步通讯        Python网络编程也类似.同时最近找工作笔试面试考察Socket套接字.TCP\UDP区别比较多,所以这篇文章主要精简了<Python核心编程(第二版)>第16章内

UNIX网络编程:通用套接字选项

1. SO_BROADCAST 套接字选项 本选项开启或禁止进程发送广播消息的能力.只有数据报套接字支持广播,并且还必须是在支持广播消息的网络上(例如以太网,令牌环网等).我们不可能在点对点链路上进行广播,也不可能在基于连接的传输协议(例如TCP和SCTP)之上进行广播. 2. SO_DEBUG 套接字选项 本选项仅由TCP支持.当给一个TCP套接字开启本选项时,内核将为TCP在该套接字发送和接受的所有分组保留详细跟踪信息.这些信息保存在内核的某个环形缓冲区中,并可使用trpt程序进行检查. 3

套接字选项和I/O控制命令

套接字选项和I/O控制命令 套接字一旦建立,通过套接字选项和I/O控制命令对各种属性进行操作,便可对套接字的行为产生影响.有的选项只用于信息的返回,而有的选项则可在应用程序中影响套接字的行为.I/O控制命令肯定会对套接字的行为产生影响. 1         套接字选项 对getsocketopt(获得套接字选项)函数来说,它的常见用法是获得与指定套接字相关的信息.其原型如下: int getsockopt (   SOCKET s,           int level,          i