Qt 的udpSocket通信及相关
2016-04-03 01:59
639 查看
定义
UDP客户端广播
UDP客户端发送到指定IP
收数据
获取本地IP
本地IP和端口绑定
接收数据,获取数据长度,发送方IP,发送方端口
udpSocket = new QUdpSocket(this); QByteArray datagram = "http://blog.csdn.net/uyy203"; udpSocket->writeDatagram(datagram.data(), datagram.size(), QHostAddress::Broadcast, 8686); udpSocket->bind(QHostAddress("192.168.191.10"), 8686);
UDP客户端广播
QUdpSocket *udpsocket1 = new QUdpSocket(this); QByteArray datagram = "http://blog.csdn.net/uyy203"; udpsocket1->writeDatagram(datagram.data(),datagram.size(), QHostAddress::Broadcast,ui->spinBox->text().toInt());
UDP客户端发送到指定IP
QUdpSocket *udpsocket1 = new QUdpSocket(this); QByteArray datagram = "http://blog.csdn.net/uyy203"; udpsocket1->writeDatagram(datagram.data(),datagram.size(), QHostAddress("192.168.191.10"),ui->spinBox->text().toInt());
收数据
connect(udpsocket, SIGNAL(readyRead()), this, SLOT(readPendingDatagrams())); while (udpsocket->hasPendingDatagrams()) { QByteArray datagram; datagram.resize(udpsocket->pendingDatagramSize()); QHostAddress sender; quint16 senderPort; udpsocket->readDatagram(datagram.data(), datagram.size(), &sender, &senderPort); qDebug()<<datagram.data()<<datagram.size()<<senderPort<<sender.toString(); //processTheDatagram(datagram); }
获取本地IP
QString getLocalIP(){ QList<QHostAddress> list = QNetworkInterface::allAddresses(); foreach (QHostAddress address, list) { if(address.protocol() == QAbstractSocket::IPv4Protocol) return address.toString(); } return ""; }
本地IP和端口绑定
bool Connect(QString IP,QString port) { udpReceiverSocket->close(); udpSenderSocket->close(); bindReceiverFlag=bindSenderFlag=false; bindReceiverFlag=udpReceiverSocket->bind(QHostAddress(IP),port.toInt()); bindSenderFlag=udpSenderSocket->bind(port.toInt()); if(bindReceiverFlag&&bindSenderFlag) return true; else return false; }
接收数据,获取数据长度,发送方IP,发送方端口
udpReceiverSocket->readDatagram(datagram.data(), datagram.size(),&senderIP,&senderPort);
相关文章推荐
- QT学习 第一章:基本对话框
- 使用Shiboken为C++和Qt库创建Python绑定
- Qt 5.6更新至RC版,最终版本近在咫尺
- C#实现子窗体与父窗体通信方法实例总结
- C#基于UDP实现的P2P语音聊天工具
- C#基于UDP进行异步通信的方法
- java和c#使用hessian通信的方法
- 距离详解Linux下的UDP方式通讯
- win32下进程间通信(共享内存)实例分析
- WinForm实现跨进程通信的方法
- C#中使用UDP通信实例
- ASP.NET UserControl 通信的具体实现
- Linux网络编程之UDP Socket程序示例
- Qt定时器和随机数详解
- 服务器 UDP端口占用几千个的解决办法
- Android网络编程之UDP通信模型实例
- udp socket客户端和udp服务端程序示例分享
- 浅析iOS应用开发中线程间的通信与线程安全问题
- Qt实现图片移动实例(图文教程)