此篇文章基于你已经懂得了简单的TCP一对一通信了 不懂的话可以去本篇博客QT TCP简单的通信示例 在此基础稍加修改即可多方通信. 由于有多个客户端,所以需要用一个QList来把所有的客户端给存起来.
int m_iClientCount;
QList listClient;//用来装每个客户端对应的socket的
//获得连接客户端的SOCKET套接字
m_tsTcpSocket = m_tsTcpServer->nextPendingConnection();
listClient.append(m_tsTcpSocket);//将生成的socket添加到容器里
m_iClientCount++;
然后有信号到来时触发读的槽函数后,直接遍历容器读取即可
QByteArray baArray;
//利用for循环循环列表中的每一个连接进来的客户端,判断是哪一个客户端发的数据
for(int i=0;ireadAll();
if(baArray.length()!=0)//如果检测到接收到的数据长度不为0,则代表是这个客户端发送的数据
{
QString sMsg = baArray;
qDebug() |