gpt4 book ai didi

c - 如何检测本地主机关闭的连接?

转载 作者:太空宇宙 更新时间:2023-11-04 04:04:54 25 4
gpt4 key购买 nike

我用 C 编写了一个 TCP 客户端和服务器。这些软件只能在同一台计算机上运行。

1) 我的 TCP 客户端向服务器 (localhost) 发送命令。

2)服务器努力工作并给出响应。

问题是如果 TCP 客户端关闭连接,我无法检测到客户端连接已关闭,而服务器将执行其长时间的工作。我只能使用 SEND 函数检测到这一点,但为时已晚,因为服务器已经工作。

我知道如果机器是远程的,这一定很难进行检测。在我的例子中,它是同一台机器,这应该会使任务更容易,但我还没有找到解决方案......可以使用选择功能吗?

谢谢。

最佳答案

你可以像这样用 select 来做到这一点:

  • 使用select 读取套接字上的事件。所以 select 在套接字可读时解除阻塞
  • 当请求到达服务器时,在不同的线程中开始工作
  • 当客户端关闭连接时,select 将解除阻塞,recv 将读取 0 个字节。如果是这样,你可以停止工作线程
  • 如果工作线程完成任务没有被中断,它可以发送结果

关于c - 如何检测本地主机关闭的连接?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7320256/

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