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

相关推荐
地球空间-技术小鱼7 分钟前
YUM(Yellowdog Updater, Modified)和DNF(Dandified YUM)简介
linux·运维·服务器·笔记·学习
忆源8 分钟前
Linux高级--2.4.2 linux TCP 系列操作函数 -- 深层理解
linux·网络·tcp/ip
@泽栖24 分钟前
阿里云-将旧服务器数据与配置完全迁移至新服务器
服务器·阿里云
小码的头发丝、32 分钟前
Java进阶学习笔记|面向对象
java·笔记·学习
vvw&1 小时前
如何在 Ubuntu 22.04 上安装 phpMyAdmin
linux·运维·服务器·mysql·ubuntu·php·phpmyadmin
坊钰1 小时前
【Java 数据结构】移除链表元素
java·开发语言·数据结构·学习·链表
手心里的白日梦1 小时前
TCP协议
服务器·网络·tcp/ip
阿七想学习2 小时前
数据结构《排序》
java·数据结构·学习·算法·排序算法
灰勒塔德2 小时前
Linux文件IO
linux·运维·服务器
soulteary2 小时前
使用 AI 辅助开发一个开源 IP 信息查询工具:一
人工智能·tcp/ip·开源·ip 查询