首页 > 代码库 > Socket编程基础——Socket选项
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_TCP
optname
:Socket选项的名字optval
:用于接收Socket数值的缓冲区optlen
:缓冲区大小
例如:
int optVal;int optLen=sizeof(optVal);// getsocketoptgetsockopt(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_TCP
optname
: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;// setsockoptsetsockopt(ListenSocket,SOL_SOCKET,SO_KEEPALIVE,(char*)&bopt,boptLen);// 修改后getsockopt(ListenSocket,SOL_SOCKET,SO_KEEPALIVE,(char*)&optVal,&optLen);cout<<"SO_KEEPALIVE:"<<optVal<<endl;
Socket编程基础——Socket选项
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。