QT下的UDP通讯
来源:互联网 发布:武功知乎 编辑:程序博客网 时间:2024/06/02 04:35
udp.h#include "qobject.h"#include "qudpsocket.h"class UDP: public QObject{ Q_OBJECTpublic: UDP(); ~UDP();private slots: void readyReadSlot(); void errorSlot(QAbstractSocket::SocketError socketError);private: int SendData(const char *pData, int iLength);private: QUdpSocket *_udpSocket; QHostAddress _remoteHostAddress; int _localPort; int _remotePort;};
udp.cppUDP::UDP(){ _remoteHostAddress = "127.0.0.1"; _remotePort = 2278; _localPort = 2279; _udpSocket = new QUdpSocket(this); connect(_udpSocket, SIGNAL(readyRead()), this, SLOT(readyReadSlot())); connect(_udpSocket, SIGNAL(error(QAbstractSocket::SocketError)),this, SLOT(errorSlot(QAbstractSocket::SocketError))); _udpSocket->bind(_localPort);}UDP::~UDP(){ _udpSocket->close(); //need先判断指针是否非空}void UDP::readyReadSlot(){ while( _udpSocket->hasPendingDatagrams() ) { QByteArray datagram; QHostAddress hostAddress; quint16 iPort; datagram.resize( _udpSocket->pendingDatagramSize() ); //Udp Received Data From Remote Host _udpSocket->readDatagram( datagram.data(), datagram.size(), &hostAddress, &iPort ); //拼装接收到的数据 //... }}void UDP::errorSlot(QAbstractSocket::SocketError socketError){ if( socketError == QAbstractSocket::RemoteHostClosedError ) return; QAbstractSocket::SocketState eSocketState = _udpSocket->state(); if( eSocketState == QUdpSocket::BoundState ) { _udpSocket->close(); } //Occur Error: _udpSocket->errorString()}int UDP::SendData(const char *pData, int iLength){ int iSend = _udpSocket->writeDatagram(pData, iLength, _remoteHostAddress, _remotePort); return iSend;}
QT += core network in pro file
0 0
- QT下的UDP通讯
- linux下的udp通讯
- QT UDP通讯
- Qt之局域网UDP通讯
- 基于UDP的通讯
- qt编程:windows下的udp通信
- Qt下的tcp,udp编程
- Linux下UDP通讯开发
- linux 下简单的模拟QQ 聊天过程 UDP 通讯
- QT学习之UDP通讯-----《UDP客户端编程方法总结》
- Qt:基于TCP和UDP的局域网P2P(局域网)通讯封装
- 穿越NAT的UDP通讯
- 基于UDP的通讯协议
- UDP的内部通讯纠结-
- c#的udp通讯代码
- DatagramSocket、DatagramData的UDP通讯
- linux下QT的串口通讯小实例
- Qt实现多线程下的信号与槽通讯
- WPF多语言
- IOS学习网站汇总
- php-设计模式-模板方法模式
- 负载均衡、LVS概述
- easyui validatebox 验证集合
- QT下的UDP通讯
- 双向循环链表设计分析之五
- turtlebot学习记录for ros
- VC6.0不兼容win8/8.1等新系统的结局方案
- php插入mysql的中文乱码问题
- Python:第四天
- 一般函数指针和类的成员函数指针
- c语言基本数据类型和常用常量及函数
- URAL 1297 Palindrome 后缀数组 或 Manacher 求最长回文子串