gpt4 book ai didi

在 Unix 上用 C 取消 UDP 接收

转载 作者:行者123 更新时间:2023-11-30 14:30:57 32 4
gpt4 key购买 nike

我刚刚开始学习 C 网络编程的工作原理,并且我编写了一个小程序,用于向 UNIX 终端发送消息或从 UNIX 终端发送消息。我在程序中使用 pthreads,其中一个线程本质上只是等待 recvfrom() 接收消息。

但是,如果用户选择退出程序,我希望能够正确关闭所有线程。按照我现在设置的方式,另一个线程只是取消等待recvfrom的线程,但我担心这可能不是一个好主意,因为我没有关闭套接字并且没有释放我的所有内存已分配。

有没有办法取消 recvfrom() 调用,或者有什么办法在取消 pthread 时运行某个例程?

谢谢。

最佳答案

如果您使用 pthread_kill 向线程发送信号,recvfrom() 应返回 -1,并将 errno 设置为 EINTR - 然后您可以检查“应用程序正在退出”情况并优雅地完成。

关于在 Unix 上用 C 取消 UDP 接收,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2452174/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com