套接字选项

选项影响套接字操作,如 封包路由,OOB数据传输,获取和设置套接字选项分别是 getsockopt  setsockopt 用法如下:

int getsockopt(SOCKET s,int level,int optname,char* optval,int* optlen);

int setsockopt(SOCKET s,int level,int optname,char* optval,int* optlen);

 

每个协议层套接字的选项有不同的级别:

应用层:SOL_SOCKET

传输层:IPPROTO_TCP  IPPROTO_UDP

网络层:IPPROTO_IP

阻塞模式下,可以调用recvfrom在指定的端口接收网络封包

如果封包还不到,设置套接字选项即可设置等待时间

BOOL SetTimeout(SOCKET s,int nTime,BOOL bRecv)

{

  int ret = ::setsockopt(s,SOL_SOCKET,

        brecv?SO_RCVTIMEO:SO_SNDTIMEO,(char*)&nTime,sizeof(nTime));

}
原文地址:https://www.cnblogs.com/xing901022/p/2730183.html