【发布时间】:2016-10-17 11:47:45
【问题描述】:
我使用 QUdpSocket 创建一个 UDP 服务器。当客户端连接到它时,我想知道客户端的 IP 地址和端口号。我该怎么做?
【问题讨论】:
我使用 QUdpSocket 创建一个 UDP 服务器。当客户端连接到它时,我想知道客户端的 IP 地址和端口号。我该怎么做?
【问题讨论】:
在服务器端,您可以看到数据来自使用的地址:
readDatagram(char * data, qint64 maxSize, QHostAddress * address = 0, quint16 * port = 0)
在收到 readyRead() 信号时读取数据。
【讨论】:
QHostAddress sender;
quint16 senderPort;
socket->readDatagram(buffer.data(), buffer.size(), &sender, &senderPort);
QString received = QString(buffer);
qDebug() << "Message received on IP:" << socket->localAddress().toString() << "Port:" << socket->localPort();
qDebug() << "Message from:" << sender.toString();
qDebug() << "Message Port:" << senderPort;
qDebug() << "Message:" << received;
这是获取发件人地址的正确方法。
【讨论】: