吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 2551|回复: 5
收起左侧

[C&C++ 转载] QT中的UDP编程(新人菜鸟,如有错误请指正)

[复制链接]
rain-xuan 发表于 2021-3-14 10:23

QUdpSocket

<h2>QT的UDP协议:</h2>

  1. windows的UDP编程模型

    服务器 客户端
    0.协议版本信息 0.协议版本信息
    1.创建socket 1.创建socket
    2.服务器协议地址簇 2.获取服务器的协议地址簇
    3.绑定 3.通信:往服务器发数据
    4.接受客户端数据,顺百年获取客户端协议地址簇
    5. 关闭 4. 关闭

    <strong>recv + accpet == recvfrom</strong>

    <strong>send + connect ==sendto</strong>

  2. QT的UDP编程模型

    服务器 客户端
    1.创建socket对象 (QUdpSocket) 1.创建socket对象(QUdpSocket)
    2.绑定(QUdpSocket::bind)
    3.收数据 信号发送者:QUdpSocket对象  信号接收者:当前对象  信号:QUdpSocket::readyRead 2.通信
    4. 发数据  收:readDatagram  发: writeDatagram
    5. 关闭 3. 关闭

<h2>服务器端的界面设计</h2>

服务器端界面

<h2>客户端界面设计</h2>

客户端界面

<strong>可以将textEdit_recv设置为ReadOnly</strong>

QUdpSocket服务器端代码

  1. 在.pro文件中添加

    ~~~c++
    QT  +=network

  2. 创建socket对象

    • 在头文件中加入#include <QUdpSocket>
    • 在类的定义的private中添加QUdpSocket* pQUdpSocket
    • 在构造器中pQUdpSocket = new QUdpSocket(this)
  3. 绑定

    pQUdpSocket->bind(8888),8888位服务器的端口号

  4. 数据的接收(信号)

    ~~~c++
    connect(pQUdpSocket,&QUdpSocket::readyRead,this,[=](){
    //收数据
    char buff[1024]={0};
    QHostAddress ip;
    quint16 port;
    pQUdpSocket->readDatagram(buff,1024,&ip,&port);

    //数据的显示
    QString str = QString("ip:%1,port:%2,msg:%3").arg(ip.toString()).arg(port).grg(buff);

    ui->textEdit_recv->append();
    });

    
    槽,到ui设计界面,选中发送的PushButton,右键转到槽,选择clicked()
    
    ~~~c++
    //获取ip,port,msg
    QString ip = ui->lineEdit_IP->text();
    QString port = ui->lineEdit_port->text();
    QString msg = ui->textEdit_send->toPlainText();
    
    pQUdpSocket->writeDatagram(msg.toUtf8(),QHostAddress(ip),port.toUInt());

QUdpSocket客户端代码

和服务端差不多,去掉绑定这一步就行了。

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

wqc159 发表于 2021-3-14 11:02
加油,QT自带的例子下面有完整的udp收发,广播例子,直接copy过来,改吧改吧,弄成类,不需要造轮子了。
我就是这么干的。
bwuaich 发表于 2021-3-14 11:30
楼上的大佬; 说的也可行; 或者度娘, G oogle 更好 ,
MarvinJ 发表于 2021-3-15 14:25
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-25 17:30

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表