创建服务器套接字后,我们得到父 FD。一旦父 FD 用于接受客户端连接,它将创建更多的子 FD。
所以在调用 close() 时最佳做法是什么:
- 在所有客户端 FD 上调用 close(),然后在父 FD 上调用 close()。
- 先在父 FD 上调用 close,然后在每个子 FD 上调用 close()
- 调用父 FD 上的 close() 即可
最佳答案
以web server definition优雅地关闭并将其简化为 TCP,您将得到以下内容:
- 关闭所有监听/父套接字但保持所有事件连接运行。这可以防止形成新的连接。
- 等待客户端自然关闭事件/子连接,如果关闭则关闭它们的套接字。
- 如果在给定的时间段后仍有事件/子连接,则强行关闭它们的套接字。
基本上,您将优先考虑现有的事件连接并尝试强行关闭最少数量的连接。
关于c++ - Linux系统优雅关闭TCP Server,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48319981/