套接字选项

时间:2022-04-22
本文章向大家介绍套接字选项,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

选项影响套接字操作,如 封包路由,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));

}