QT 的UDP SOCKET编程
来源:互联网 发布:亚当斯密 知乎 编辑:程序博客网 时间:2024/06/06 18:33
QT建立控制台项目,还是用最简单的c/s 模式.
#ifndef UDP_UDPclient_H
#define UDP_UDPclient_H
#include <QtNetwork/QUdpSocket>
#include <QHostAddress>
#include <QThread>
#pragma once
class UDPclient: public QObject
{
Q_OBJECT
public:
void InitSocket();
private slots:
void Recv();
};
#endif
UDPclient.cpp
#include "UDPclient.h"
QUdpSocket *udpSocket; //套接字对象
void UDPclient::InitSocket()
{
udpSocket = new QUdpSocket(this);
udpSocket->bind(QHostAddress::Any,2002);
connect(udpSocket, SIGNAL(readyRead()),
this, SLOT(Recv()));
}
void UDPclient::Recv()
{
while (udpSocket->hasPendingDatagrams())
{
QByteArray datagram;
datagram.resize(udpSocket->pendingDatagramSize());
udpSocket->readDatagram(datagram.data(), datagram.size());
for (int i = 0; i < datagram.size(); ++i)
{
printf( " %x",datagram.at(i));
}
printf("/n");
}
}
函数解释:pendingDatagramSize 当有数据包读入时返回true.
resize 为datageam设置大小
pendingDatagramSize 返回udosocket第一个数据包的大小
readDatagram 读数据包
server端,顺便学习写下个多进程QThread:
main.cpp
#include <QtGui/QApplication>
#include "UDP_QT.h"
int main(int argc, char *argv[])
{
UDP_QT Server;
QCoreApplication a(argc, argv);
Server.InitSocket();
Server.start();//进程开始
return a.exec();
}
#ifndef UDP_QT_H
#define UDP_QT_H
#include <QtNetwork/QUdpSocket>
#include <QHostAddress>
#include <QThread>
#pragma once
class UDP_QT: public QThread
{
private:
void Send();
public:
void InitSocket();
void run();
};
#endif
UDP_QT.cpp
#include "UDP_QT.h"
QUdpSocket *udpSocket; //套接字对象
char ToAddress[20]="10.144.123.237";
void UDP_QT::InitSocket()
{
udpSocket = new QUdpSocket(this);
}
void UDP_QT::Send()
{
char information[]="adg";
while(1)
{
udpSocket->writeDatagram(information,QHostAddress(ToAddress),2002);
printf("send datagram:");
for (int i = 0; i < sizeof(information); ++i)
{
printf("%d",information[i]);
}
static int count=0;
printf("/n%d",count++);
sleep(1); //sleep函数要在进程下才能使用,它继承QThread
}
}
void UDP_QT::run() //运行进程
{
Send();
}
以上仿照QT帮助写的.
- QT 的UDP SOCKET编程
- QT Socket编程--UDP Server
- socket的udp编程
- Qt的UDP编程
- 基于UDP的socket编程- -
- 基于UDP的socket编程
- 基于UDP的socket编程
- 基于UDP的socket编程
- 基于UDP的socket编程
- 基于UDP的socket编程
- 基于UDP的socket编程
- 基于udp的socket编程
- 基于UDP的Socket编程
- 基于UDP的socket编程
- 基于UDP的socket编程
- 基于UDP的socket编程
- python的socket编程之udp编程
- QT编程问题小结(编译、多线程、UDP Socket等)
- ibluever demo版连接A1200手机上cmnet
- Linux下检测指定目录下的所有打开的文件(包括子目录)并按照原有的目录结构保存一个副本
- OF位 与 CF位
- 一个IT男30岁前的困惑
- Java 101 : Hello World
- QT 的UDP SOCKET编程
- Axis1.4学习笔记
- 禁用调试
- qt中文编码
- 学习记录
- qt的横竖屏转换
- The habit of keeping journals-05092011
- Linux内核大讲堂 (一) 设备驱动的基石驱动模型(4)
- Android之绚丽的图片游览效果--有点像W7效果,透明的倒影,层叠的图片,渐变的颜色透明度