在前面文掌的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,就可以获取到对应的指针,进行指定客户端的发送数据