linux C语言 TCP 多线程 简易聊天室
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了linux C语言 TCP 多线程 简易聊天室相关的知识,希望对你有一定的参考价值。
只有一个客户端的话,接收发送都没什么问题,但是有第二个客户端参与的话,第一个客户端就不能发送了,但是可以接收,仔细看了下,问题应该在 服务器端的recv函数的第一个参数id,如果用进程做,可以复制数据,有2个客户端就有两个id,但是用线程做,线程之间数据共用,第二个客户端来了之后,第一个id就被第二个id覆盖了,这个问题要怎么解决呢?求指教
参考技术A 你accept得到一个新的连接后,再创建线程(把连接socket传给线程),用这个线程专门接收这个连接的数据,就不会有问题了。追问你的意思是 每对话一次,客户端都close,然后再不停的connect吗?
追答和客户端通讯的时候线程就活着,客户端断开了,线程就结束。
没有要客户端主动断掉,但是客户端总有断的时候吧?
如果永远不断,那服务端线程也一直存在。
不是啊,我用线程
以上是关于linux C语言 TCP 多线程 简易聊天室的主要内容,如果未能解决你的问题,请参考以下文章
Linux下基于TCP协议的群聊系统设计(多线程+select)