qt udp

#ifndef MUDP_H
#define MUDP_H

#include <QObject>
#include <QUdpSocket>

class mudp : public QObject
{
    Q_OBJECT
public:
    explicit mudp(QObject *parent = 0);

    QUdpSocket  *udpSocket ;

    void initSocket();

public slots:
    void readPendingDatagrams();

};

#endif // MUDP_H
#include "mudp.h"

#define UDP_PORT  8080

mudp::mudp(QObject *parent) :
    QObject(parent)
{
    initSocket();
}
void mudp::initSocket()
{
    udpSocket = new QUdpSocket();
    udpSocket->bind(QHostAddress::AnyIPv4, UDP_PORT, QUdpSocket::ReuseAddressHint);
    connect(udpSocket, SIGNAL(readyRead()),this, SLOT(readPendingDatagrams()));
}

void mudp::readPendingDatagrams()
{
    while (udpSocket->hasPendingDatagrams())
    {
        QByteArray datagram;
        datagram.resize(udpSocket->pendingDatagramSize());

        QHostAddress sender;
        quint16 senderPort;

        udpSocket->readDatagram(datagram.data(), datagram.size(), &sender, &senderPort);

        qDebug()<<sender.toString()<<senderPort<<(datagram);

        udpSocket->writeDatagram(datagram.data(), datagram.size(),sender, senderPort);
    }
}
#include "mainwindow.h"
#include "mudp.h"
mudp *udp;
MainWindow::MainWindow(QWidget *parent)
    : QMainWindow(parent)
{
     udp = new mudp;
}

MainWindow::~MainWindow()
{
}
时间: 2024-10-13 18:45:45

qt udp的相关文章

【C/C++学院】(20)QT:udp通信

基于QT的UDP协议的通信 #------------------------------------------------- # # Project created by QtCreator 2014-05-22T21:39:26 # #------------------------------------------------- QT += core gui QT += network greaterThan(QT_MAJOR_VERSION, 4): QT += widgets TA

QT Udp组播(穿透)

http://blog.csdn.net/victoryknight/article/details/7814243 主题 UDPQt路由器 局域网内的两台机器如果隔有路由器,那么这两台机器之间不能进行广播通信,但是我们可以换成组播的通信的方式,达到相互通信的效果. 一 服务器端 QUdpSocket udp_socket; udp_socket.bind(QHostAddress::Any, udp_listen_port, QUdpSocket::ReuseAddressHint); QHo

Qt udp 主机和虚拟机无法互相广播

描述: 主机和虚拟机可以ping通,port没被占用,虚拟机可以向主机广播,但是主机不能向虚拟机广播 原因: 虚拟机只配置了一个适配器,而主机有多个适配器,当虚拟机广播时,只能使用和主机连接的适配器,所以虚拟机能对主机广播,但是主机广播时,主机可能随便用个适配器,因此虚拟机无法收到主机的广播. 解决方法: 广播时,指定网段. 示例: 主机 m_udp->bind(QHostAddress::Any, ui->portLineEdit->text().toInt()); m_udp->

Qt学习之路

  Qt学习之路_14(简易音乐播放器) Qt学习之路_13(简易俄罗斯方块) Qt学习之路_12(简易数据管理系统) Qt学习之路_11(简易多文档编辑器) Qt学习之路_10(Qt中statusBar,MessageBox和Timer的简单处理) Qt学习之路_9(Qt中Item Widget初步探索) Qt学习之路_8(Qt中与文件目录相关操作) Qt学习之路_7(线性布局和网格布局初步探索) Qt学习之路_6(Qt局域网聊天软件) Qt学习之路_5(Qt TCP的初步使用) Qt学习之路

[3G嵌入式应用课程]嵌入式C语言实训班

第一阶段:掌握Qt 所应用的范围,建立面向对象开发的思维方法,列举使用Qt所开发的项目案例.包括行业案例, 与嵌入式开发的案例,掌握面向对象的图形界面的方法,包括计算机常用图形部件,掌握Qt 信号与槽的实现机制.技术顾问:廖老师  13687358291  qq:30546045532 1. Qt 简介与现状 2. Qt应用范围 3. 深入面向对象编程 4. Qt编程团队组建管理以及设计开发流程介绍 6. linux平台qt应用开发流程 7. Qt 对象模型与类图,介绍Qt 常用类(Qt对象结构

Qt浅谈之十六:TCP和UDP(之一)

一.简介 Qt使用QtNetwork模块来进行网络编程,提供了一层统一的套接字抽象用于编写不同层次的网络程序,避免了应用套接字进行网络编的繁琐(因有时需引用底层操作系统的相关数据结构).有较底层次的类如QTcpSocket.QTcpServer和QUdpSocket等来表示低层的网络概念:还有高层次的类如QNetworkRequest.QNetworkReply和QNetworkAccessManager使用相同的协议来执行网络操作:也提供了QNetworkConfiguration.QNetw

qt在windows下的udp通信(最简单)

qt编程:windows下的udp通信 本文博客链接:http://blog.csdn.net/jdh99,作者:jdh,转载请注明. 环境: 主机:win7 开发环境:qt 功能: 用udp进行收发通信 界面: 源代码: LssHost.pro: [cpp] view plain copy #------------------------------------------------- # # Project created by QtCreator 2013-09-22T09:36:44

QT网络编程UDP下C/S架构广播通信

QT有封装好的UDP协议的类,QUdpSocket,里面有我们想要的函数接口.感兴趣的话,可以看看. 先搞服务端吧,写一个子类,继承QDialog类,起名为UdpServer类.头文件要引用我们上边说的QUdpSocket这个类,还有我们想要的布局的类. 1 #ifndef UDPSERVER_H 2 #define UDPSERVER_H 3 4 #include <QDialog> 5 #include <QLabel> 6 #include <QLineEdit>

QT的UDP组播技术

一 UDP介绍 UDP是一种简单轻量级的传输层协议,提供无连接的,不可靠的报文传输.适合下面4种情况: 网络数据大多为短消息. 拥有大量客户端. 对数据安全性无特殊要求 网络负担非常重,但对响应速度要求高. 二 基于udp协议的c/s编程模型(广播),组播的话,明天再看. 客户端: class Sender : public QObject { Q_OBJECT //可以使用信号和槽 public: explicit Sender(QObject *parent = 0); ~Sender();