`
ydbc
  • 浏览: 766924 次
  • 性别: Icon_minigender_1
  • 来自: 大连
文章分类
社区版块
存档分类
最新评论

qt编程:windows下的udp通信

 
阅读更多

qt编程:windows下的udp通信


本文博客链接:http://blog.csdn.net/jdh99,作者:jdh,转载请注明.


环境:

主机:win7

开发环境:qt


功能:

用udp进行收发通信


界面:



源代码:

LssHost.pro:

#-------------------------------------------------
#
# Project created by QtCreator 2013-09-22T09:36:44
#
#-------------------------------------------------

QT       += core gui
QT       += network

TARGET = LssHost
TEMPLATE = app


SOURCES += main.cpp\
        mainwindow.cpp

HEADERS  += mainwindow.h

FORMS    += mainwindow.ui

mainwindows.h

#ifndef MAINWINDOW_H
#define MAINWINDOW_H

#include <QMainWindow>
#include <QtNetwork/QUdpSocket>

namespace Ui {
    class MainWindow;
}

class MainWindow : public QMainWindow
{
    Q_OBJECT

public:
    explicit MainWindow(QWidget *parent = 0);
    ~MainWindow();

private:
    Ui::MainWindow *ui;

    QUdpSocket *udp_socket_tx;
    QUdpSocket *udp_socket_rx;
    QHostAddress Ip_Tx;
    int Port_Tx;

private slots:
    void on_btn_cfg_clicked();
    void on_btn_tx_clicked();
    void rx_udp();
};

#endif // MAINWINDOW_H

mainwindows.cpp:

#include "mainwindow.h"
#include "ui_mainwindow.h"

MainWindow::MainWindow(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::MainWindow)
{   
    ui->setupUi(this);

    udp_socket_tx = new QUdpSocket(this);
    udp_socket_rx = new QUdpSocket(this);

    ui->btn_tx->setEnabled(false);
}

MainWindow::~MainWindow()
{
    delete ui;
} 

//接收udp数据
void MainWindow::rx_udp()
{
    qDebug() << "rx";

    while (udp_socket_rx->hasPendingDatagrams())
    {
             QByteArray datagram;
             datagram.resize(udp_socket_rx->pendingDatagramSize());

             QHostAddress sender;
             quint16 senderPort;

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

             ui->txt_rx->append(datagram);
         }
}

//发送按键
void MainWindow::on_btn_tx_clicked()
{
    QByteArray datagram = ui->txt_tx->toPlainText().toAscii();
    udp_socket_tx->writeDatagram(datagram, datagram.size(), Ip_Tx, Port_Tx);
}

//配置按键
void MainWindow::on_btn_cfg_clicked()
{
    bool ok;
    int port_rx = 0;

    //获得发送IP和端口
    Ip_Tx = QHostAddress(ui->txt_ip->text());
    Port_Tx = ui->txt_port_tx->text().toInt(&ok);
    //获得接收端口
    port_rx = ui->txt_port_rx->text().toInt(&ok);
    udp_socket_rx->bind(QHostAddress::Any, port_rx);

    //绑定接收信号槽
    connect(udp_socket_rx, SIGNAL(readyRead()),this, SLOT(rx_udp()));

    ui->btn_tx->setEnabled(true);
}

main.cpp:

#include <QtGui/QApplication>
#include "mainwindow.h"

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    MainWindow w;
    w.show();

    return a.exec();
}


分享到:
评论

相关推荐

    Qt_UDP通信,qt实现udp通信,C,C++

    Qt是一个跨平台的C++图形用户界面应用程序开发框架,它提供了丰富的API来支持UDP通信。下面将详细介绍如何使用Qt实现UDP的发送与接收。 首先,理解UDP通信的基本概念。UDP协议不保证数据包的顺序、完整性和可靠性,...

    Qt网络编程之搭建Udp通信【单播、组播、广播】

    总的来说,Qt网络编程提供了丰富的工具和接口来处理UDP通信,无论是单播、组播还是广播,都可以通过灵活地使用`QUdpSocket`和其他相关类来实现。通过对这些代码实例的学习和实践,你将能够掌握Qt环境下UDP通信的核心...

    qt编写的Udp使用线程通信

    2. 实现UDP通信:在run()函数中,创建QUdpSocket实例,并设置好相关属性,如绑定到特定的IP地址和端口,然后开启接收和发送数据。 ```cpp QUdpSocket socket; socket.bind(QHostAddress::LocalHost, 12345); // ...

    QT网络编程——UDP通信源码

    QUdpSocket是QT提供的用于UDP通信的类,它允许我们发送和接收QDatagram对象。 要实现UDP通信,首先需要创建一个QUdpSocket实例。这可以通过调用QUdpSocket的构造函数完成,然后通过bind()函数绑定到特定的IP地址和...

    Qt简单的UDP通信demo

    **Qt简单的UDP通信demo** Qt是一个跨平台的C++应用程序开发框架,广泛应用于GUI应用程序、网络编程、多媒体处理等多个领域。在本示例中,我们将深入探讨如何在Qt中实现一个简单的UDP(用户数据报协议)通信。UDP是...

    QT下多线程 UDP socket示例

    首先,我们要理解QT库中的QSocket类是用于处理低级网络通信的基础类,而QUdpSocket则专门用于UDP通信。UDP是一种无连接、不可靠的传输协议,适合于实时数据传输或对速度要求较高的应用。 在创建UDP服务器时,我们...

    QTUDP通信Demo

    通过这个UDP通信Demo,开发者可以学习到如何在Qt环境下编写UDP应用,这对于需要快速、低延迟网络通信的项目来说是非常有价值的。同时,这个Demo也提供了一个实践平台,帮助开发者更好地理解和掌握网络编程的基本概念...

    Qt中的udp通信

    在Qt框架中实现UDP通信,通常涉及到网络编程的Socket接口,特别是使用QUdpSocket类来处理用户数据报协议(User Datagram Protocol)。UDP是一种无连接、不可靠的传输协议,适用于实时性要求高但对数据完整性不那么...

    QT+PLC实现FINSUDP通信

    QT+PLC实现FINSUDP通信是一个典型的工业自动化领域的技术应用,主要涉及到QT框架、FINS(Fujitsu Integrated System Network)协议以及UDP(User Datagram Protocol)网络通信。以下是相关知识点的详细介绍: 1. **...

    QT5 UDP通信源码

    QT5 UDP通信源码是基于QT5框架实现的无连接网络通信示例,适用于学习和理解UDP(User Datagram Protocol)在网络编程中的应用。UDP是一种传输层协议,与TCP(Transmission Control Protocol)相比,它不提供连接建立...

    在QT下的UDP服务器和客户端的简单DEMO

    QT是一个流行的开源C++...这个DEMO是一个很好的起点,帮助开发者理解如何在QT环境中集成UDP通信。然而,实际的UDP服务器和客户端可能需要处理更复杂的情况,比如多客户端连接、数据包排序和重传、安全性和性能优化等。

    Qt:以太网udp发送与接收一体化显示

    在Qt中,我们可以使用`QTcpSocket`和`QUdpSocket`类来处理TCP和UDP通信。在这个案例中,我们关注`QUdpSocket`。`QUdpSocket`允许我们发送和接收UDP数据包,非常适合自发自收的场景。 1. **创建QUdpSocket对象** 在...

    基于UDP协议的多线程高速接收QT工程

    QT框架提供了丰富的网络编程接口,如QSocket和QUdpSocket类,使得开发者可以方便地处理UDP通信。QUdpSocket类用于UDP的发送和接收,可以设置监听端口,接收到的数据会通过信号槽机制触发相应的事件处理函数。开发者...

    Qt:以太网udp组播发送与接收

    Qt是一个跨平台的应用程序开发框架,支持多种编程语言,包括C++,并提供了丰富的库来处理网络编程任务,包括UDP组播。下面将详细介绍如何在Qt中实现以太网UDP组播的发送与接收。 首先,理解UDP组播的基础知识。UDP...

    TCP_UDP_COM2012.01.13.zip_QT TCP_Qt udp通信_UDP_qt udp

    "QT Tcp"和"qt_udp通信"标签表明,此项目中包含使用Qt库实现的TCP和UDP客户端和/或服务器程序。Qt库是一个跨平台的应用程序开发框架,提供丰富的API来处理网络通信。通过Qt的网络模块,开发者可以方便地创建TCP和UDP...

    qt udp编程

    QUdpSocket是QT中的一个关键类,它为UDP通信提供了接口。UDP是一种无连接的协议,相比于TCP,它更轻量级,传输速度更快,但不保证数据包的顺序或可靠性。这使得UDP在实时应用,如在线游戏或视频流中非常流行。 在...

    Qt 下的udp socket通信示例

    总之,“Qt下的udp socket通信示例”是一个宝贵的资源,它可以帮助开发者快速上手Qt环境下的UDP通信。通过实践和研究这个示例,你可以深入理解UDP Socket的工作原理,为你的Qt项目添加网络功能。

    QT扫描+UDP通信

    总的来说,这个项目展示了如何综合运用QT的GUI功能、网络编程、多媒体处理和第三方库,实现两个端点之间的数据传输,特别是包含了对UDP通信和二维码识别的支持。这种技术在物联网、远程监控等领域有着广泛的应用。

    QT源代码 基于UDP的

    本压缩包中的"QT源代码 基于UDP的"可能包含了一些使用QT库来实现基于UDP通信的示例代码。在C++中,通过QT库可以方便地创建和管理UDP套接字,进行数据的发送和接收。 首先,了解QT中的网络编程,我们需要导入相关的...

    Qt下tcp和udp的编程例子

    在Qt中,我们使用QUdpSocket类来处理UDP通信。QUdpSocket可以发送和接收无连接的数据报,sendDatagram()方法用于发送数据,receiveDatagram()用于接收数据,而且可以使用bind()方法绑定到特定的端口以接收数据。 在...

Global site tag (gtag.js) - Google Analytics