在Qt中,当服务器端接收到客户端的消息时,可以通过 QTcpSocket
类获取发送消息的客户端的 IP 地址。以下是一个简单的示例代码:
void YourServerClass::onReadyRead()
{
QTcpSocket* clientSocket = qobject_cast<QTcpSocket*>(sender());
if (clientSocket)
{
QHostAddress clientAddress = clientSocket->peerAddress();
QString clientIP = clientAddress.toString();
// 使用clientIP进行处理或记录
qDebug() << "Received message from client with IP: " << clientIP;
// 处理接收到的消息...
}
}
在上述代码中,onReadyRead()
是一个槽函数,用于处理客户端发来的消息。通过 qobject_cast<QTcpSocket*>(sender())
获取到发送信号的客户端套接字对象。然后使用 peerAddress()
获取该客户端套接字对应的 IP 地址,并将其转换为字符串形式。
注意:在实际情况中,请确保已经建立了连接并成功获取数据之后再调用 peerAddress()
方法以避免错误。
这样就可以方便地获取到发送消息的客户端的 IP 地址。
内容由零声教学AI助手提供,问题来源于学员提问