在前面文掌的tcp客服端服务端进行更改
qt学习:Network网络类+tcp客户端+tcp服务端-CSDN博客https://blog.csdn.net/weixin_59669309/article/details/135842933?spm=1001.2014.3001.5501前面的服务端每次有新的客户端连接,就会覆盖掉原来的指针,现在用一个容器来保存
先定义一个容器
private:QList<QTcpSocket*> m_clientList;
修改连接槽函数
//接收新的客户端对象QTcpSocket *client = m_tcpServer->nextPendingConnection();//尾插法将新的客户端对象加入到链表里m_clientList.push_back(client);//发送数据client->write("xxx");//如果有客户端发送数据过来,那么newClient会自动发射 readyRead信号,关联槽函数,接收数据connect(client,&QTcpSocket::readyRead,this,&Widget::onRecvDataSlot);//把连接上来的客户端IP 和端口号 打印到界面上QString text = QString("有新的客户端连接上来 IP:%1 Port:%2").arg(client->peerAddress().toString().arg(client->peerPort()));ui->textBrowser->append(text);
只要记录每个链表对应的客户端id,就可以获取到对应的指针,进行指定客户端的发送数据