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是非阻塞的,但是为什么我的程序运行到这里,如果没有数据过来,就走不下去呢?有数据过来就过去了。 展开
printf("wait.\n");
好像网上说recvfrom是非阻塞的,但是为什么我的程序运行到这里,如果没有数据过来,就走不下去呢?有数据过来就过去了。 展开
2个回答
展开全部
recvfrom默认就是阻塞的,要么你看错了,要么别人在误导你
它的第三个参数设置为MSG_DONTWAIT时本次接收为非阻塞
它的第三个参数设置为MSG_DONTWAIT时本次接收为非阻塞
追问
可能你的做法也可以,但是一楼的比较好。网上说是windows socket默认全部是阻塞的,这种处理以后不用管你说的那个参数了。
追答
这不是不知道你用哪个操作系统,不敢写api给你
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
迪凯特科技(北京)有限公司
2023-07-28 广告
2023-07-28 广告
首先,获取单片机和串口屏的通信协议; 其次,在PC中编写串口通信软件,分别控制两个设备即可; 调试的时候,可以先用现有的串口助手类软件如串口调试助手,或者自定义协议功能的通信软件如格西烽火,测试和验证你定义的协议…...
点击进入详情页
本回答由迪凯特科技(北京)有限公司提供
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询