【发布时间】:2012-06-04 19:42:34
【问题描述】:
我正在制作一个小型 tcp 服务器,它通过线程处理许多请求。 当我的服务器关闭时,他会留下未关闭的套接字。 如何在新启动服务器时自动关闭它们或以某种方式释放它们? 插座的数量很大,我不想手动管理它们。
有什么想法吗?
【问题讨论】:
-
如果你关闭你的应用程序,你持有的所有套接字都将被操作系统关闭。文件描述符在内核中被引用计数,当没有更多的套接字用户时,相关的资源将被释放(TCP套接字完成,文件关闭等)。
-
你别无选择。除非您使用具有析构函数的语言,否则您必须“手动管理它们”。您的问题不清楚:您是否在谈论处于 TIME_WAIT 状态的 ports?
标签: linux sockets tcp pthreads