首页| 论坛| 消息

标题:QUdpSocket如何知道消息发送方的IP地址
作者:qq2632671
日期:2018-07-11 17:56
内容:

现在我的电脑里,连接了一个设备,这个设备不断的通过UDP发送消息
我使用UDP接收消息
比如,我的电脑的IP地址是127.0.0.1,端口设为23333;然后有
rece_Udp->bind(QHostAddress(IP_ADDRESS),PORT);
然后通过套接字ree_Udp接收消息,单现在的问题是,我电脑(服务器)连接了好几台设备(客户端),他们都会通过UDP向我的电脑里发送消息,怎么样知道每个消息过来是的(客户端)的IP地址呢?


#1 [never_forget 07-12 09:08]
UDP是无连接的,它只管接收设备某一个端口发过来的报文,甚至不会去管报文完整与否,你想要
IP 和端口,基本是不可能的,我查看了Qt 的文档,也没有看到相关的函数,你想要实现这个,可能要自己处理了,使用 TCP ,或者通过报文发地址来验证~
#2 [yanwuyue 07-12 09:25]
while(udp->hasPendingDatagrams())
{
QByteArray datagram;
QHostAddress sender; //客户端sender.toString()IP地址
quint16 senderPort; //客户端端口
datagram.resize(udp->pendingDatagramSize());
udp->readDatagram(datagram.data(), datagram.size(), &sender, &senderPort);
QString ip=sender.toString().replace("::ffff:","");
}
#3 [xllwanlxy 07-12 16:00]
有现成的函数啊。

回复 发表
主题 版块