当前位置: 首页 > 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.lryc.cn/news/616011.html

相关文章:

  • 【自动化运维神器Ansible】playbook案例解析:Tags组件实现任务选择性执行
  • 从DDPM对比学习Diffusion Policy:生成模型到策略学习的演进
  • Java变量的声明规则与Scanner的应用
  • C++基础语法积累
  • 【密码学】8. 密码协议
  • Mysql系列--5、表的基本查询(下)
  • Agent在游戏行业的应用:NPC智能化与游戏体验提升
  • 【数据结构入门】栈和队列的OJ题
  • Shell脚本-其他变量定义
  • vue和react和uniapp的状态管理分别是什么,并且介绍和怎么使用
  • How Websites Work 网站如何运作
  • Vue 事件冒泡处理指南:从入门到精通
  • 五种Excel表格导出方案
  • sqllabs——Less1
  • 前端学习日记 - 前端函数防抖详解
  • 遇到前端导出 Excel 文件出现乱码或文件损坏的问题
  • 打靶日常-upload-labs(21关)
  • Spring Boot配置文件加密详解
  • crc32算法php版----crc32.php
  • 【redis初阶】--------Set 集合类型
  • 如何通过API接口实现批量获取淘宝商品数据?(官方与非官方渠道分享)
  • Linux 路由子系统深度分析:框架、实现与代码路径
  • [Python 基础课程]常用函数
  • X265性能分析开源代码
  • 【高等数学】第八章 向量代数与空间解析几何——第六节 空间曲线及其方程
  • Video Lecture 8 Page Fault
  • 使用 Python 进行图片识别的项目开发
  • git merge和git rebase的区别
  • MIRO中文本如何传入FI凭证的
  • 基于Spring SSE构建实时监控系统