当前位置: 首页 > news >正文

《Qt————Tcp通讯》

Qt——tcp通讯


在上一节中,我们介绍了tcp的连接,这一节我们实现两者之前的消息发送与接收
ps:代码在上一节基础上添加


1.创建ui,并设计

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述



2.代码编写

1.隐藏窗口

在客户端连接成功后,隐藏连接界面
在这里插入图片描述


2.显示新窗口

先去widget.h包含一下<chat.h>头文件

1.由于函数结束局部变量会被释放,我们需要在堆上创建元素

2.为了在新窗口继续使用原先用于连接的socket,我们需要修改构造函数,加入变量

在这里插入图片描述


在这里插入图片描述

运行结果:
在这里插入图片描述


3.发送和清除函数的编写

  1. 清除

    void chat::on_clear_button_clicked()
    {ui->lineEdit->clear();
    }
    
  2. 发送(客户端)

    void chat::on_send_button_clicked()
    {QByteArray info= ui->lineEdit->text().toUtf8();socket->write(info);
    }
    

4.服务端接收

只用在ui界面加一个lineEdit,用于存放客户端发送的数据

void Widget::newclientHandler()
{//建立tcp连接QTcpSocket *socket=server->nextPendingConnection();//显示ui->ip_line->setText(socket->peerAddress().toString());//获取客户端的ip地址,并显示在ip_line上ui->port_line->setText(QString::number(socket->peerPort()));//获取客户端端口号,并显示在port_line上connect(socket,&QTcpSocket::readyRead,this,&Widget::rec_slot);
}
void Widget::rec_slot()
{//获取信号发出者QTcpSocket * s=(QTcpSocket*)sender();ui->rec_line->setText(QString(s->readAll()));}

3.最终效果

在这里插入图片描述

http://www.dtcms.com/a/324378.html

相关文章:

  • 容器网络隔离测试于VPS服务器环境的桥接模式验证
  • Docker 详细介绍及使用方法
  • 【大智慧数据】心智开花的时候
  • 数字图像处理3
  • 三、k8s 1.29 之 安装1网络 / ikuai路由器虚拟机安装
  • 【嵌入式】Linux的常用操作命令(2)
  • 防御保护10
  • AI优化SEO关键词实战应用
  • Java数据结构——LinkedList
  • scanpy单细胞转录组python教程(一):不同形式数据读取
  • Python爬虫实战:研究BlackWidow,构建最新科技资讯采集系统
  • Shell脚本-条件判断语法格式
  • React Profiler
  • 【代码随想录day 15】 力扣 404. 左叶子之和
  • 【无标题】命名管道(Named Pipe)是一种在操作系统中用于**进程间通信(IPC)** 的机制
  • Ubuntu 安装 Elasticsearch
  • Ubuntu 安装 Kibana
  • WGS84 与 ITRF 坐标系的差异及转换算法详解
  • 进程状态+进程优先级+进程上下文切换解读
  • 不同hash加密类型的hashfile.txt文件
  • C# 中常用集合以及使用场景
  • 强制类型转换
  • AI 对齐:让人工智能与人类价值同频共振
  • JavaWeb——maven高级(5/5)-私服(私服的概念与作用、Maven 依赖的查找顺序、上传资源到私服的配置步骤、下载依赖配置条件)
  • 单链表专题---暴力算法美学(2)(有视频演示)
  • actuary notes[2]
  • 单调栈——数位删减
  • Go语言中切片(Slice)的拷贝
  • 自创论述类文本阅读:论温泉
  • PWM波的频谱分析及matlab 验证[电路原理]