c++ - Linux系统优雅关闭TCP Server

标签 c++ linux networking network-programming

创建服务器套接字后,我们得到父 FD。一旦父 FD 用于接受客户端连接,它将创建更多的子 FD。

所以在调用 close() 时最佳做法是什么:

  1. 在所有客户端 FD 上调用 close(),然后在父 FD 上调用 close()。
  2. 先在父 FD 上调用 close,然后在每个子 FD 上调用 close()
  3. 调用父 FD 上的 close() 即可

最佳答案

web server definition优雅地关闭并将其简化为 TCP,您将得到以下内容:

  1. 关闭所有监听/父套接字但保持所有事件连接运行。这可以防止形成新的连接。
  2. 等待客户端自然关闭事件/子连接,如果关闭则关闭它们的套接字。
  3. 如果在给定的时间段后仍有事件/子连接,则强行关闭它们的套接字。

基本上,您将优先考虑现有的事件连接并尝试强行关闭最少数量的连接。

关于c++ - Linux系统优雅关闭TCP Server,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48319981/

相关文章:

c++ - 在 Boost.ProgramOptions 中使用类似 gettext 的翻译

c++ - 在 Windows 10 上将 Armadillo 用作带有 CLion 和 CMake 的库的问题

java - 如何将 spring-boot war 部署到 debian jetty8

c - 使用 C/C++ 的 LibXml2

Java/JSP 发送TCP包并等待响应

c++ - 是否存在阻止内置函数拥有静态成员的技术限制?

c++ - 编译器如何根据Exception_ptr管理异常的存储

c - 系统 ("echo text > t.log") 报告错误

compiler-construction - 路由算法

jakarta-ee - Apache Tomcat 发送重定向