尝试退出阻塞的UDP套接字读取
发布时间:2020-12-16 10:19:52 所属栏目:百科 来源:网络整理
导读:这是一个类似于 Proper way to close a blocking UDP socket的问题.我在C中有一个从UDP套接字读取的线程.读取是阻止的.我想知道是否有可能退出线程,而不依赖于recv()返回?例如,我可以从另一个线程关闭套接字并安全地期望套接字读取线程退出吗?在那个帖子上
这是一个类似于
Proper way to close a blocking UDP socket的问题.我在C中有一个从UDP套接字读取的线程.读取是阻止的.我想知道是否有可能退出线程,而不依赖于recv()返回?例如,我可以从另一个线程关闭套接字并安全地期望套接字读取线程退出吗?在那个帖子上没有看到任何高投票的答案,这就是为什么我再次问它.
解决方法
这实际上取决于您正在运行的系统.例如,如果您在符合POSIX的系统下运行且线程可取消,则取消线程时recv()调用将被中断,因为它是取消点.
如果您正在使用较旧的套接字实现,您可以为您的线程设置SIGUSR1之类的信号处理程序,并希望没有其他人想要它并发出信号,因为recv()将中断信号.如果可能的话,你最好的选择是不要阻止. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |