QT网络通信UDP,最简单写发

QT网络通信UDP,最简单写发

两台电脑通讯,亲测可用!
最简单的UDP程序,一行多余代码都没用。总共分四步。

第一步:头文件和宏定义

包含3个头文件。
需要发送和接收的槽函数。
创建一个UDP的套接字。

#include <QHostAddress>//IP地址的头文件
#include <QUdpSocket>//UDP通讯的头文件
#include <QByteArray>//QByteArray类的头文件

private slots:
    void on_pushButton_clicked();//发送数据的按键的槽函数
    void readData();//接收数据的槽函数

private:
    QUdpSocket *udpSocket;//创建套接字

第二步:初始化

第二条,需要根据系统里设置的IP修改,也可以获取本地IP。

    udpSocket = new QUdpSocket(this);//建立套接字

    udpSocket->bind(QHostAddress("192.168.1.120"),7000);//设置本地的IP和端口号,可以根据实际情况修改
    connect(udpSocket, SIGNAL(readyRead()),this, SLOT(readData()));//连接接收数据的槽函数

第三步:发送数据

就一条语句。
这里使用界面创建了一个按键,点一下发送一条。

    //使用writeDatagram发送数据 参数1:数据,参数2:目标IP,参数3:目标端口号
    udpSocket->writeDatagram("发送数据",QHostAddress("192.168.1.130"),8000);

第四步:接收数据

这里稍微麻烦一点,使用的是帮助文档里的代码。
接收到数据后,把数据、IP、端口号,都打印出来。

    QByteArray datagram;//创建一个QByteArray类,用来接收数据
    datagram.resize(udpSocket->pendingDatagramSize());//获取数据长度

    QHostAddress sender;//接收到的IP
    quint16 senderPort;//接收到的端口号

    //使用readDatagram接收数据,参数1:数据,参数2:长度,参数3:目标IP,参数4:目标端口号
    udpSocket->readDatagram(datagram.data(), datagram.size(),&sender, &senderPort);
    qDebug()<<"IP:"<<sender<<"Port:"<<senderPort<<"Data:"<<datagram.data();//打印输出

运行效果

使用两台电脑,网线直连,把IP设置好,PING通。
两台电脑运行这个程序。
注意:本地IP端口号,和目标IP和端口号,需要在程序里手动设置。
在这里插入图片描述
点击发送数据后,另一台电脑接收到数据,并打印出来。
在这里插入图片描述

工程链接

https://download.csdn.net/download/qq_36353009/15898002

  • 2
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值