socket非阻塞接收

size=recvfrom(m_pSock,pBuf,mBufSize,0,(structsockaddr*)&addr,&addr_len);printf("wait.... size = recvfrom(m_pSock,pBuf,mBufSize,0,(struct sockaddr *)&addr,&addr_len);
printf("wait.\n");
好像网上说recvfrom是非阻塞的,但是为什么我的程序运行到这里,如果没有数据过来,就走不下去呢?有数据过来就过去了。
展开
 我来答
hchongatustc
2013-02-01 · TA获得超过156个赞
知道答主
回答量:70
采纳率:0%
帮助的人:105万
展开全部
recvfrom默认就是阻塞的,要么你看错了,要么别人在误导你
它的第三个参数设置为MSG_DONTWAIT时本次接收为非阻塞
追问
可能你的做法也可以,但是一楼的比较好。网上说是windows socket默认全部是阻塞的,这种处理以后不用管你说的那个参数了。
追答
这不是不知道你用哪个操作系统,不敢写api给你
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
迪凯特科技(北京)有限公司
2023-07-28 广告
首先,获取单片机和串口屏的通信协议; 其次,在PC中编写串口通信软件,分别控制两个设备即可; 调试的时候,可以先用现有的串口助手类软件如串口调试助手,或者自定义协议功能的通信软件如格西烽火,测试和验证你定义的协议…... 点击进入详情页
本回答由迪凯特科技(北京)有限公司提供
来自杏花村大气的木星
2013-02-01 · TA获得超过4045个赞
知道小有建树答主
回答量:773
采纳率:33%
帮助的人:1001万
展开全部
别忘了设置socket模式!
int iMode = 1; //0:阻塞 1:非阻塞
ioctlsocket(m_pSock,FIONBIO, (u_long FAR*) &iMode);//非阻塞设置
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式