Qt实现UDP通信简例
来源:互联网 发布:linux 安装vnc server 编辑:程序博客网 时间:2024/06/01 09:30
- 参考
- 目标
- 特点
- Tips
- 源码
- 发送端
- maincpp
- 接收端
- UdpReceiverh
- UdpReceivercpp
- maincpp
- 发送端
- 截图
- 工程
- qmake
- 效果
参考
QT实现UDP通信(原版例子!!!)
Singals & Slots(官方文档)
Qt入门之信号与槽机制
Qt 信号槽的实现
Qt学习 之 Socket通信
Qt的Socket数据通讯的一个例子
Qt 下的udp socket通信示例(要下载的完整Qt工程)
CSDN-markdown语法之如何插入图片(乱入…)
目标
终极目标是完成计网课设:基于P2P的局域网即时通信系统。
然而…第一次接触 Qt,完全没有概念,希望有个尽量简单的例子见识一下 Qt 网络编程的套路。看完参考的例子后学写了一波。
特点
- 只有一边发送、另一边接收,且都在本地
- 没有图形界面,就黑框框
Tips
- Qt 版本:5.8
- .pro 文件里要加一句:
QT += network
,接着一定要 执行qmake - 约定用 2333 号端口(随便啦)
- 测试时要在本机启动两个程序,就把发送端和接收段放在两个工程里,分别置为活动工程、运行,就可以启动两个了
- singals 和 slots 其实就是普通的成员函数,见上面 Qt 信号槽的实现 的链接中带有魔法的宏
bind()
大概是使用那个端口的意思,就从那端口读数据- 一旦端口收到数据,就会
emit
一个叫readyRead()
的信号,然后那些connect()
了readyRead()
的槽(例中的receive()
)就会收到通知(被调用),然后进行相应的操作(函数体)
源码
发送端
main.cpp
#include <QByteArray>#include <QCoreApplication>#include <QHostAddress>#include <QUdpSocket>const quint16 PORT = 2333;int main(int argc, char *argv[]){ QCoreApplication a(argc, argv); QUdpSocket qus;// qus.bind(QHostAddress("127.0.0.1"), PORT+1); QByteArray msg = "Hello world!"; std::cout << "--- Sender ---" << std::endl; for(int i=0; i<100; ++i) qus.writeDatagram(msg, QHostAddress("127.0.0.1"), PORT); return a.exec();}
接收端
UdpReceiver.h
#ifndef UDPRECEIVER_H#define UDPRECEIVER_H#include <QObject>#include <QUdpSocket>class UdpReceiver : public QObject{ Q_OBJECTpublic: UdpReceiver(QObject *p = 0); ~UdpReceiver();public slots: void receive();private: QUdpSocket *uSocket;};#endif // UDPRECEIVER_H
UdpReceiver.cpp
#include <QByteArray>#include <iostream>#include "UdpReceiver.h"const quint16 PORT = 2333;UdpReceiver::UdpReceiver(QObject *p) : QObject(p){ uSocket = new QUdpSocket; uSocket->bind(QHostAddress("127.0.0.1"), PORT); connect(uSocket, SIGNAL(readyRead()), this, SLOT(receive()));}UdpReceiver::~UdpReceiver(){ delete uSocket;}void UdpReceiver::receive(){ QByteArray ba; while(uSocket->hasPendingDatagrams()) { ba.resize(uSocket->pendingDatagramSize()); uSocket->readDatagram(ba.data(), ba.size()); std::cout << ba.data() << std::endl; }}
main.cpp
#include <QCoreApplication>#include "udpreceiver.h"#include <iostream>int main(int argc, char *argv[]){ QCoreApplication a(argc, argv); UdpReceiver ur; std::cout << "--- Recevier ---" << std::endl; return a.exec();}
截图
工程
qmake
效果
阅读全文
0 0
- Qt实现UDP通信简例
- Qt实现UDP通信简例
- Qt-----实现Udp通信
- Qt实现UDP广播简例
- QT的UDP通信
- qt udp 通信
- Qt中的UDP通信
- TCP/UDP通信编程在Qt中的实现方法
- Qt实现TCP通信简例
- Qt网络与通信-UDP
- Qt Socket通信(UDP&TCP)
- QT之UDP通信总结
- QT 创建UDP Socket通信
- Udp实现通信DEMO
- UDP通信C++实现
- python实现UDP通信
- C++实现UDP通信。。
- Java实现UDP通信
- 微信小程序入门资源整理(热更新)
- python模块atexit与register函数
- Redis 入门 慕课网,笔记
- JS判断客户端是手机还是PC的2个代码
- Qt学习08——布局管理综合应用
- Qt实现UDP通信简例
- Kail5新建工程
- android 内部存储 更新apk
- Toolkit(示例,出错代码)
- eclipse的scala插件安装方法
- 24点游戏
- Spring MVC multipartfile 转 file 找不到文件
- 利用tensorflow keras搭建一个简单的卷积神经网络
- Android高德地图定位API