繁体   English   中英

客户端在C中的服务器线程中的pthread_exit()之后挂起

[英]Client hangs after pthread_exit() in server thread in C

我有一台服务器,可以处理多个客户端。 连接到它的每个客户端都在其自己的线程中得到服务。 现在,如果服务器端发生任何错误,我想通过调用pthread_exit退出该线程,并终止该线程正在服务的客户端。 然而; 当我尝试这样做时,我的客户就挂了。 同样,这也会导致处于不同线程中的其他客户端也挂起。 我随机调用pthread_exit进行测试...

最有可能的问题是,在调用pthread_exit()之前没有调用close(newsockfd)。 如果是这样,那么您的服务器线程就会消失,但是即使服务器不再对其执行任何操作,它用来与客户端通信的套接字仍保持打开状态。 然后,客户端的传出TCP缓冲区将填满,客户端将无限期地等待服务器从套接字中接收更多数据,而这种情况永远不会发生。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM