【发布时间】:2012-08-15 06:47:06
【问题描述】:
我正在学习 Pthreads,并且想知道杀死这样一个对象的最佳方法是什么。在寻找类似问题后,我无法找到“明确”的答案,但请随时向我指出任何相关问题。
我正在使用一个小型客户端服务器应用程序,其中服务器主线程正在侦听客户端连接的套接字。每次客户端连接时,服务器都会在 while true 循环中创建一个执行“无限工作”的新线程。现在我想在同一个客户端在套接字上发送“停止”请求时停止这个循环。
如果知道客户端是通过每个套接字消息中提供的 ID 来识别的,您将如何实现这样的行为?使用共享变量(在主服务器线程和客户端服务器线程之间)作为 while 循环中的测试条件。使用 PThread 函数?
【问题讨论】:
-
当线程从socket读取“停止”请求时,仅仅退出该线程的函数还不够吗?
-
套接字由服务器的主线程读取,而不是服务器“客户端”线程...
-
有趣的设置...所以每个客户端都有一个线程,但您没有线程自己读取?你这样做有理由吗?在我看来,这只会让你的生活更加艰难。
-
@LnxPrgr3:完全同意你的看法
标签: c sockets pthreads client-server