我是QT的初学者,我想用客户端用自己的一个IP地址连接到服务器,而那个IP地址是我人为设定的(可以理解为TCP的攻击),但我现在用QTcpSocket定义了tcpSocket对象,然后设定端口和IP地址,并连接到主机服务器上;我用qDebug查看了当前本地IP地址和端口号,跟我修改的目标IP和端口号是一致的,但连接到服务器,我服务器上看到的ip地址却是我电脑当前的局域网ip地址(说明,通信的时候,还是按照局域网ip连接出去的,而不是用我设定的那个IP);具体代码如下:
tcpSocket = new QTcpSocket(this);
tcpSocket ->setLocalAddress(*new QHostAddress("192.168.2.30"));
tcpSocket->setLocalPort(1222);
tcpSocket->connectToHost("192.168.1.117",55555);//其中192.168.1.117是我局域网的IP地址。我当前电脑用一个调试助手开启了个TCP Server;
qDebug() << "当前LocalAddress = "+tcpSocket->localAddress().toString();
qDebug() << "当前端点号为 :" + QString::number(tcpSocket->localPort());
结果,在我TCP Server中显示连接的设备IP地址为192.168.1.117,端口号是53420;并且依旧能通信;
问题:
1、正常的话,如果设定的ip地址是不可达到的话,压根就不可能握手成功啊!
2、这个IP地址到底什么回事?如果修改不成功,那Debug输出的信息为什么又是我修改的目标值?
|