gpt4 book ai didi

c - 如何终止套接字接受阻塞

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:35:11 29 4
gpt4 key购买 nike

我用 C 代码开发了一个服务器。

我使用 accept() 函数让我的服务器监听给定的套接字。

我的服务器在线程中启动。

现在在其他线程中,对于某些情况,我想停止 accept() 阻塞,然后关闭相关套接字。

我该怎么做? shutdown() 可以这样做吗?

最佳答案

[这不适用于 Windows]

  • 使用 sigaction()安装一个信号处理程序,让我们说 SIGUSR1 什么都不做,但未设置 SA_RESTART 选项(另请参阅“信号处理程序中断系统调用和库函数”部分"在这个 man-page 上)。

  • 然后向阻塞进程发送一个SIGUSR1信号。

accept() 将返回 -1 并将 errno 设置为 EINTR

关于c - 如何终止套接字接受阻塞,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35754754/

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