首先说明情况:在同一个局域网下,在同一台电脑上运行服务器和客户端或者两台主机上运行客户端和服务器,笔者发现在代码正确且未作改动的情况下,偶尔客户端和服务器会连接失败,仔细查看代码发现没有问题,并且查看主机IP,发现IP也没有变化,最后发现导致连接失败的原因是开启了vpn,关闭vpn发现代码又能用了。
在开启vpn时连接失败的原因可能是:
开启了代理连接公网,并且主机的IP地址没有变化,可能是代理服务器在代理过程中做了转发或NAT(Network Address Translation)处理,使得在外部看起来似乎是同一个IP地址在进行连接。
在这种情况下,主机的IP地址在本地网络中确实没有变化,但是实际上通过代理连接外部服务器时,服务器看到的IP地址是代理服务器的IP地址,而不是你主机的真实IP地址。
这种情况下,你的TCP文件发送程序需要正确处理代理设置,使用代理服务器提供的地址和端口来进行连接。你还需要确保代理服务器正确地将连接请求转发给目标服务器,并将响应从目标服务器返回给你的主机。