Linux下的udp_socket编程

1 篇文章 0 订阅
1 篇文章 0 订阅

在QT中如果要使用udp,就要#include <QtNetwork/QUdpSocket>,同时在.pro文件中加入QT+=network

声明一个UPD类:QUdpSocket *sender,receiver;

之后要初始化:sender = new QUdpSocket(this);

如果是做接收用的话还要用bind绑定端口:receiver->bind(45454,QUdpSocket::ShareAddress);

然后把信号和槽函数关联起来:    connect(receiver,SIGNAL(readyRead()),this,SLOT(processPendingDatagram()));

定义一个要发送的数据包:QByteArray datagram;

把数据用append放到数据包中:    datagram.append(send_data);

发送数据:sender->writeDatagram(datagram.data(), datagram.size(), QHostAddress(ip_address),45454); //如果数据是空的话是不会发送的

接收数据:receiver->hasPendingDatagrams() //检测是否有数据要接收,最好配合while使用:while(receiver->hasPendingDatagrams()){} //当有数据时才执行之后的程序

同样要定义一个数据包:QByteArray rec_data;

重新分配数据包的长度:rec_data.resize(receiver->pendingDatagramSize());

然后把接收的数据放入数据包中:receiver->readDatagram(rec_data.data(),rec_data.size());

                  


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值