套接字选项

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

}

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏xingoo, 一个梦想做发明家的程序员

WSAAsyncSelect模型

WSAAsyncSelect模型允许程序以windows消息的形式接受网络事件通知 WSAAsyncSelect函数自动把套接字设为非阻塞模式,并且为套接字绑定...

26070
来自专栏向治洪

android优化之省电

Android程序中耗电最多的地方在以下几个方面 : 1、 大数据量的传输。 2、 不停的在网络间切换。 3、 解析大量的文本数据。 那么我们怎么样来改...

215100
来自专栏互联网开发者交流社区

AvalonJS前端开发源码

15630
来自专栏喵了个咪的博客空间

EMQ百万级MQTT消息服务(TLS Docker Golang)

60830
来自专栏信安之路

必知必会的安全工具

渗透测试中手工测试固然重要,但是测试工具也是必不可少的,一个好的工具可以让我们在渗透测试中事半功倍,俗话说,工欲善其事必先利其器,所以工具是很重要的,本文就主要...

14500
来自专栏Android源码框架分析

Android ContentProvider支持跨进程数据共享与"互斥、同步"杂谈

在开发中,假如,A、B进程有部分信息需要同步,这个时候怎么处理呢?设想这么一个场景,有个业务复杂的Activity非常占用内存,并引发OOM,所以,想要把这个A...

36030
来自专栏CDN及云技术分享

Openssl状态机的实现

Openssl是通过“握手“建立加密信道,在该信道双方的身份都是合法的,并且传输数据都是密文传输。Openssl握手通过客户端和服务端互相交换信息计算出secr...

47830
来自专栏我的博客

filter_input()详解,$_GET,$_POST,$_ENV,$_SERVER,$_SESSION,$_REQUEST

filter_input() 函数从脚本外部获取输入,并进行过滤。 本函数用于对来自非安全来源的变量进行验证,比如用户的输入。 本函数可从各种来源获取输入: I...

35550
来自专栏帘卷西风的专栏

关于cocos2dx客户端程序的自动更新解决方案

转载请注明出处:帘卷西风的专栏(http://blog.csdn.net/ljxfblog)

27810
来自专栏Kotlin入门系列

win7基础 cmd 查看当前已经启动的服务列表

85160

扫码关注云+社区

领取腾讯云代金券