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();
- }
http://blog.csdn.net/jdh99/article/details/11892725
qt在windows下的udp通信(最简单)的更多相关文章
- QT在windows下的安装与配置
先了解Qt: Qt一直以来,分为商业.开源两个版本,商业版本为用户提供了二级制的动态库,直接安装既可以使用,但是需要花钱购买license,而开源版本则遵守GPL协议,提供了源码,用户需要自行编译,才 ...
- Windows下Anaconda的安装和简单使用
Windows下Anaconda的安装和简单使用 Anaconda is a completely free Python distribution (including for commercial ...
- Qt在Windows下的三种编程环境搭建
尊重作者,支持原创,如需转载,请附上原地址:http://blog.csdn.net/libaineu2004/article/details/17363165 从QT官网可以得知其支持的平台.编译器 ...
- qt在windows下编译遇到的一些问题
软件是在linux上写的,然而搬到windows上来遇到了好多问题.... 想跪.... 首先就是压根编译不了的问题....这个问题困扰我好久了....一直报错undefined reference ...
- Qt在Windows下的三种编程环境搭建(图文并茂,非常清楚)good
尊重作者,支持原创,如需转载,请附上原地址:http://blog.csdn.net/libaineu2004/article/details/17363165 从QT官网可以得知其支持的平台.编译器 ...
- 【Qt开发】Qt在Windows下的三种编程环境搭建
从QT官网可以得知其支持的平台.编译器和调试器的信息如图所示: http://qt-project.org/doc/qtcreator-3.0/creator-debugger-engines.htm ...
- 【QT开发】QT在windows下的exe应用程序如何在别人的电脑上直接运行
当你利用QT编译了一个可执行程序,需要将这个可执行程序拷贝到别人的电脑上运行,这个时候除了这个可执行程序外,还需要支持的库才可用运行.一般来说通过下面的方法可以实现. 首先,需要看你用的是什 ...
- windows下curl的安装和简单使用
curl是利用URL语法在命令行方式下工作的开源文件传输工具.它支持很多协议:FTP, FTPS, HTTP, HTTPS, GOPHER, TELNET, DICT, FILE 以及 LDAP. 一 ...
- java 网络编程之UDP通信和简单的群聊程序
*/ .hljs { display: block; overflow-x: auto; padding: 0.5em; color: #333; background: #f8f8f8; } .hl ...
随机推荐
- ubuntu 16.0.4 中docker 部署 sqlserver 2017(四)
1. 从 Docker Hub 中拉出 SQL Server 2017 Linux 容器映像 sudo docker pull mcr.microsoft.com/mssql/server:2017- ...
- Python采用struct处理二进制
有时需要使用python二进制数据,实例,件.socket操作时.这时候.能够使用python的struct模块来完毕.能够用 struct来处理c语言中的结构体. struct模块中最重要的三个函数 ...
- Android 它们的定义View
安卓开发过程,安卓官方控制有时来自往往不能满足我们的需求.这一次,我必须定义自己.下面我们就来看看他们的定义View: package com.example.myview; import andro ...
- 纯洁CSS3实现图片墙
预赛 DIV+CSS基金会 CSS3的transform 和 transition说明 主要用于transform的rotate/scale 动画过渡的几个參数(transition-property ...
- UWP 扩展/自定义标题栏的方法,一些概念和一些注意事项
原文 UWP 扩展/自定义标题栏的方法,一些概念和一些注意事项 在 Windows 10 的前几个版本中将页面内容扩展到标题栏上还算简单,主要是没什么坑.直到一些新控件的引入和一些外观设计趋势变化之后 ...
- dos命令查看端口状态
netstat 显示协议统计信息和当前 TCP/IP 网络连接. NETSTAT [-a] [-b] [-e] [-n] [-o] [-p proto] [-r] [-s] [-v] [interva ...
- Android 测试 Appium、Robotium、monkey而其他的框架或工具控制
1. Appium測试 (功能測试,用户接受度測试,黑盒測试) - Rating: 8 Website: http://appium.io/ Appium測试相当于黑盒測试. 仅仅是測试UI逻辑正确性 ...
- TCP网络通讯如何解决分包粘包问题(有模拟代码)
TCP作为常用的网络传输协议,数据流解析是网络应用开发人员永远绕不开的一个问题. TCP数据传输是以无边界的数据流传输形式,所谓无边界是指数据发送端发送的字节数,在数据接收端接受时并不一定等于发送的字 ...
- 记一次删除Git记录中的大文件的过程
app/test/target/ #查看大文件 git rev-list --objects --all | grep "$(git verify-pack -v .git/objects/ ...
- Convert和RelativeSource
自定义Converter 后台Converter类实现接口IValueConverter方法Convert是值->UI方法ConvertBack是UI->值初始化走Convert publ ...