怎么解除recvfrom阻塞的阻塞状态

一般情况我是需要recvfrom阻塞的,但是在按Ctrl+c时触发了信号要让线程跑到return,可是线程中的recvfrom已经阻塞,使得程序不动了,有什么办法么?一个... 一般情况我是需要recvfrom阻塞的,但是在按Ctrl+c时触发了信号要让线程跑到return,可是线程中的recvfrom已经阻塞,使得程序不动了,有什么办法么?
一个线程是客户端,recvfrom所在的线程服务器端
我想按ctrl+c时马上关掉线程,用超时不好吧! 请问,怎么关掉socket。用close关不掉啊
展开
 我来答
liuxinling_06
2012-07-25 · TA获得超过1289个赞
知道小有建树答主
回答量:345
采纳率:100%
帮助的人:424万
展开全部
方法1. 用setsockopt设置阻塞超时时间,recvfrom阻塞一段超时后,退出响应其他线程的消息。

方法2. 主线程直接把recvfrom的socket close掉,recvfrom会报错退出。
迪凯特科技(北京)有限公司
2023-07-28 广告
要从电脑的一个串行口接收数据并将其从另一个串行口发送出去,你可以使用以下步骤:1. 确定你要使用的两个串行口。在大多数计算机上,串行口通常被称为COM1、COM2等。确保你了解每个串行口的名称或编号。2. 编写一个程序来读取来自一个串行口的... 点击进入详情页
本回答由迪凯特科技(北京)有限公司提供
4fn
2012-07-25 · TA获得超过183个赞
知道答主
回答量:59
采纳率:0%
帮助的人:87.7万
展开全部
用ioctlsocket(Win32)或者fcntl(Linux)重置为非阻塞试试看
追问
fcntl不行啊,我的函数是fcntl(fd,F_SETFL,O_NONBLOCK);
很郁闷啊,求教啊
追答
unsigned long arg = fcntl(fd, F_GETFL, NULL);
arg |= O_NONBLOCK;
fcntl(fd, F_SETFL, arg);
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友a9211d539
2012-07-25 · TA获得超过267个赞
知道答主
回答量:16
采纳率:0%
帮助的人:8.3万
展开全部
我也想知道
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式