我想写一个服务器程序,支持一个客户端,直到现在和几天我试图发展它,我总结我需要线程。这样做的原因是因为我从wifi套接字输入并稍后处理它并最终写入文件,处理时间很慢,因此我需要一个输入线程 - >循环缓冲区 - >生产者消费者的输出线程模式这在网络编程中很常见。多线程Linux套接字编程设计
现在,情况变得复杂了,因为我需要管理客户端断开连接和重新连接。我想过使用pthread_exit()并清理所有信号量,然后在每次重新连接单个客户端时重新初始化它们。
我的问题是,这是一种有效的方法,即每次杀死线程和信号量并重新创建它们。有没有更好的解决方案。
谢谢。
作为编辑我使用简单的标志来表示线程停止并最终加入。它适用于两个连接,第三个连接面临问题。我应该在关闭前一个套接字和新套接字时放一些延迟。 – Haswell 2014-09-02 07:40:41
在为新连接创建任何新套接字fd之前,我正在关闭所有描述符。 – Haswell 2014-09-02 08:53:49
你不是在使用像bind,listen,accept等标准套接字函数吗?你粘贴的代码对我来说没有多大意义。 – rodolk 2014-09-03 02:45:49