Socket编程基础——Socket选项
有些情况下,我们需要对Socket行为和属性进一步控制,例如修改缓冲区大小,查看Socket状态,这就需要设置/获取Socket选项。
1、获取Socket选项int getsockopt(SOCKET s,int level,int optname,void *optval,int *optlen)s:Socket描述符level:选项级别,包括SOL_SOCKET和IPPROTO_TCPoptname:Socket选项的名字optval:用于接收Socket数值的缓冲区optlen:缓冲区大小
例如:
int optVal;
int optLen=sizeof(optVal);
// getsocketopt
getsockopt(ListenSocket,SOL_SOCKET,SO_ACCEPTCONN,(char*)&optVal,&optLen);
cout<<"SO_ACCEPTCONN:"<<optVal<<endl;
2、设置Socket选项int setsockopt(SOCKET s,int level,int optname,void *optval,int optlen)s:Socket描述符level:选项级别,包括SOL_SOCKET和IPPROTO_TCPoptname:Socket选项的名字optval:用于设置Socket数值的缓冲区optlen:缓冲区大小
例如:
bool bopt=true;
int boptLen=sizeof(bopt);
// 修改前
getsockopt(ListenSocket,SOL_SOCKET,SO_KEEPALIVE,(char*)&optVal,&optLen);
cout<<"SO_KEEPALIVE:"<<optVal<<endl;
// setsockopt
setsockopt(ListenSocket,SOL_SOCKET,SO_KEEPALIVE,(char*)&bopt,boptLen);
// 修改后
getsockopt(ListenSocket,SOL_SOCKET,SO_KEEPALIVE,(char*)&optVal,&optLen);
cout<<"SO_KEEPALIVE:"<<optVal<<endl;
Socket编程基础——Socket选项的更多相关文章
- socket编程基础-字节序/IP/PORT转换/域名
		
socket编程基础 网络IP操作函数 字符串的IP和32位的IP转换 #include <sys/socket.h> #inlcude <netinet/in.h> #inc ...
 - Linux高并发网络编程开发——10-Linux系统编程-第10天(网络编程基础-socket)
		
在学习Linux高并发网络编程开发总结了笔记,并分享出来.有问题请及时联系博主:Alliswell_WP,转载请注明出处. 10-Linux系统编程-第10天(网络编程基础-socket) 在学习Li ...
 - 【socket编程基础模板】
		
网络编程的基础是基于socket编程.socket(TCP)编程基于固定编程模板 server端: socket(声明socket类型) bind(命令socket,绑定地址和端口) listen(创 ...
 - php的socket编程(socket关键几个函数)
		
php的socket编程(socket关键几个函数) 一.总结 一句话总结: socket_create.socket_connect.socket_bind.socket_listen.socket ...
 - 【转】Java Socket编程基础及深入讲解
		
原文:https://www.cnblogs.com/yiwangzhibujian/p/7107785.html#q2.3.3 Socket是Java网络编程的基础,了解还是有好处的, 这篇文章主要 ...
 - 【Socket】Java Socket编程基础及深入讲解
		
Socket是Java网络编程的基础,了解还是有好处的, 这篇文章主要讲解Socket的基础编程.Socket用在哪呢,主要用在进程间,网络间通信.本篇比较长,特别做了个目录: 一.Socket通信基 ...
 - Python Socket编程基础篇
		
Socket网络编程 socket通常也称作"套接字",用于描述IP地址和端口,是一个通信链的句柄,应用程序通常通过"套接字"向网络发出请求或者应答网络请求. ...
 - socket编程基础
		
socket编程 什么是socket 定义 socket通常也称作套接字,用于描述IP地址和端口,是一个通信链的句柄,应用程序通常通过套接字向网络发出请求或者应答网络请求. socket起源于Unix ...
 - c#socket编程基础
		
Microsoft.Net Framework为应用程序访问Internet提供了分层的.可扩展的以及受管辖的网络服务,其名字空间System.Net和System.Net.Sockets包含丰富的类 ...
 
随机推荐
- [渣译文] 使用 MVC 5 的 EF6 Code First 入门 系列:实现基本的CRUD功能
			
英文渣水平,大伙凑合着看吧…… 这是微软官方SignalR 2.0教程Getting Started with Entity Framework 6 Code First using MVC 5 系列 ...
 - consul的安装配置 一centos7环境
			
centos7上consul的安装--新手笔记 环境 我用的是centos7, 用的是vmware 一 安装系统后首先要设置ip ifconfig eth0 →查看IP 不过输出的信息多一些 ifco ...
 - [css]需警惕CSS3属性的书写顺序
			
转载张鑫旭:http://www.zhangxinxu.com/wordpress/2010/09/%E9%9C%80%E8%AD%A6%E6%83%95css3%E5%B1%9E%E6%80%A7% ...
 - CSS和Js样式属性的对照关系
			
注意:1.在使用js时,如newTD.style.paddingLeft="200";(错误),正确生效的写法是newTD.style.paddingLeft="200p ...
 - Technology Remarks
			
-----------------------分隔符-----12.10.2016------ 抓视频 关键字补充: Base64编码/解码 出现这样的情况怎么办呢? 网址: abook-hep ...
 - Mac 安装mysql
			
下载mysql-5.7.14-osx10.11-x86_64.tar # 移动解压后的二进制包到安装目录 sudo mv mysql-5.6.24-osx10.9-x86_64 /usr/local/ ...
 - Clojure学习笔记(二)——函数式编程
			
定义 “函数式编程”是一种编程范式(programming paradigm),即如何编写程序的方法论.主要思想是把运算过程尽量写成一系列嵌套的函数调用. 举例来说,现在有这样一个数学表达式: (1 ...
 - Aspose 强大的服务器端 excel word ppt pdf 处理工具
			
Aspose 强大的服务器端 excel word ppt pdf 处理工具 http://www.aspose.com/java/word-component.aspx
 - 使用Dottrace跟踪代码执行时间
			
当自己程序遇到性能问题,比如IIs请求反应缓慢,客户端程序执行缓慢,怎么分析是哪里出了问题呢?dottrace可以帮助.net程序跟踪出代码里每个方法的执行时间,这样让我们更清晰的看出是哪里执行时间过 ...
 - WCF初探-18:WCF数据协定之KnownType
			
KnownTypeAttribute 类概述 在数据到达接收终结点时,WCF 运行库尝试将数据反序列化为公共语言运行库 (CLR) 类型的实例.通过首先检查传入消息选择为反序列化而实例化的类型,以确定 ...