IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 网络协议 -> Qt之UdpSocket -> 正文阅读

[网络协议]Qt之UdpSocket

QUdpSocket Class

qmake:

QT += network

Header:

#include<QUdpSocket>

在这里插入图片描述
具体如下:
在这里插入图片描述
我们需要以上三个属性,myPort(我的端口),toPort(对方端口),toIp(对方Ip)。
步骤如下:
1、初始化属性: 即myPort,toPort,toIp
2、创建套接字
3、绑定自身端口号
4、点击发送按钮发送报文
5、书写报文: 需要用到writeDatagram函数,该函数对应参数分别为
writeDatagram(书写内容,对方Ip,对方端口)
6、接受数据
connect(套接字,&QudpSocket::readyRead,this,[=] (){
7、获取报文长度赋值给size(qint64类型)
8、读取报文:需要用到readDatagram函数,该函数对应参数分别为
readDatagram(数据,长度);
9、将数据同步到聊天记录中
通过appand()来添加到聊天记录中
});
如下附上代码:

/*qudpdemo.cpp */
#include "qudpdemo.h"
#include "ui_qudpdemo.h"


QUdpdemo::QUdpdemo(QWidget *parent)
    : QMainWindow(parent)
    , ui(new Ui::QUdpdemo)
{
    ui->setupUi(this);
    //初始化属性
    ui->line_myPort->setText("8888");
    ui->line_toPort->setText("9999");
    ui->line_toIp->setText("127.0.0.1");


    //创建套接字
    udp =  new QUdpSocket(this);
    //绑定自身端口号
    udp->bind(ui->line_myPort->text().toInt());
    //点击了发送按钮发送报文
    connect(ui->btn_send,&QPushButton::clicked,this,[=](){
        //书写报文   书写内容  对方IP   对方端口
       udp->writeDatagram(ui->text_write->toPlainText().toUtf8(),QHostAddress(ui->line_toIp->text()),ui->line_toPort->text().toInt());
       ui->text_communicateRem->append("I say: "+ui->text_write->toPlainText());
       //清空输入框
       ui->text_write->clear();
    });
    //接受数据
    connect(udp,&QUdpSocket::readyRead,this,[=](){
        //获取到报文长度
        qint64 size = udp->pendingDatagramSize();


        QByteArray array = QByteArray(size,0);
        udp->readDatagram(array.data(),size);
        //将数据同步聊天记录中
        ui->text_communicateRem->append(array);
    });
}


QUdpdemo::~QUdpdemo()
{
    delete ui;
}~
/*secondpeople.cpp*/
#include "secondpeople.h"
#include "ui_secondpeople.h"


SecondPeople::SecondPeople(QWidget *parent) :
    QWidget(parent),
    ui(new Ui::SecondPeople)
{
    ui->setupUi(this);
    //初始化属性
    ui->line_myPort->setText("9999");
    ui->line_toPort->setText("8888");
    ui->line_toIp->setText("127.0.0.1");


    //创建套接字
    udp1 =  new QUdpSocket(this);
    //绑定自身端口号
    udp1->bind(ui->line_myPort->text().toInt());
    //点击了发送按钮发送报文
    connect(ui->btn_send,&QPushButton::clicked,this,[=](){
        //书写报文   书写内容  对方IP   对方端口
       udp1->writeDatagram(ui->text_write->toPlainText().toUtf8(),QHostAddress(ui->line_toIp->text()),ui->line_toPort->text().toInt());
       ui->text_communicateRem->append("I say: "+ui->text_write->toPlainText());
       //清空输入框
       ui->text_write->clear();
    });
    //接受数据
    connect(udp1,&QUdpSocket::readyRead,this,[=](){
        //获取到报文长度
        qint64 size = udp1->pendingDatagramSize();


        QByteArray array = QByteArray(size,0);
        udp1->readDatagram(array.data(),size);
        //将数据同步聊天记录中
        ui->text_communicateRem->append(array);
    });
}


SecondPeople::~SecondPeople()
{
    delete ui;
}

~
/*main.cpp*/
#include "qudpdemo.h"
#include "secondpeople.h"
#include <QApplication>


int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    QUdpdemo w;
    w.show();


    SecondPeople u2;
    u2.show();
    return a.exec();
}

~
  网络协议 最新文章
使用Easyswoole 搭建简单的Websoket服务
常见的数据通信方式有哪些?
Openssl 1024bit RSA算法---公私钥获取和处
HTTPS协议的密钥交换流程
《小白WEB安全入门》03. 漏洞篇
HttpRunner4.x 安装与使用
2021-07-04
手写RPC学习笔记
K8S高可用版本部署
mySQL计算IP地址范围
上一篇文章      下一篇文章      查看所有文章
加:2021-07-28 08:11:23  更:2021-07-28 08:14:11 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/25 18:25:31-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码