我正在制作一个小tcp服务器,它通过线程处理大量请求。 当我的服务器关闭时,他留下了未关闭的套接字。 如何自动关闭它们或以某种方式释放我的服务器的新启动? 套接字的数量很大,我不想用手来管理它们。
有什么想法吗?
答案 0 :(得分:0)
当我上次处理套接字时,我以前做的是启动各个线程,每个线程管理一个套接字,然后分别关闭它们,因此每个线程中的每个变量都包含套接字号。可以使用close关闭插座;其中s是套接字。即使关闭程序时,运行时也会释放套接字,但最好关闭套接字,以便其他程序可以使用它们。
答案 1 :(得分:0)
套接字在哪里创建?在新线程内或线程启动之前?如果它在线程内,你可以考虑使用pthread_cleanup_push()来安装一个处理程序,当线程退出时,该处理程序关闭套接字(如果它仍然打开)。