qt学习:tcp区分保存多个客户端

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

相关推荐
ao-weilai4 分钟前
Linux网络编程:Socket UDP
linux·服务器·网络·c++
彧azz7 分钟前
图的最短路径:Dijkstra与Floyd算法
数据结构·笔记·学习
曦夜日长1 小时前
Linux系统篇,进程概念(四):内核链表的深度理解、进程优先级的底层理解
linux·运维·服务器·php
Wang's Blog1 小时前
Java 接入Redis: Redis下载与源码编译安装
java·服务器·redis
笨鸟先飞的橘猫1 小时前
系统设计复盘2026-09-18
学习
Ivanqhz1 小时前
矩阵引擎的数据流模式与 BM1684X 架构
java·服务器·网络·深度学习·神经网络
ITxiaobing20231 小时前
IP 地理定位数据库的技术选型:数据源、格式与精度对比
tcp/ip
传奇开心果编程2 小时前
【Rust入门练中学】 第1课:从零开始
开发语言·学习·rust
高亦真2 小时前
今天是学习嵌入式的第39天
linux·学习·算法
其实防守也摸鱼3 小时前
DeepSeek Harness 开源贡献手记:从入门到合入主线
服务器·数据库·windows·https·ssl