IP地址更改时保持网络连接

时间:2010-05-20 13:31:18

标签: c++ sockets network-programming

是否可以与客户端保持开放的TCP连接,而客户端的IP地址是外部更改的? 例如,连接是针对地址X建立的,但是当连接打开时,客户端用户要求进行IP更新并获取另一个IP地址。在这种情况下连接是否仍然有效?

提前致谢。

3 个答案:

答案 0 :(得分:3)

不,它不能。

即使可以按摩本地方面以了解连接突然在不同地址之间,远程方也不会理解并拒绝使用它。

您需要重新添加旧IP地址才能继续使用连接。


这样做:

Linux: ip addr add 172.16.10.20/22 dev bond0
Windows:做一些尖锐的点击或**fill in command here**

答案 1 :(得分:0)

这可能与tcp v6连接有关,如果您正在使用例如tunnelbrocker.net。每次IPv4地址更改时,IP4地址与隧道浏览器的IP4地址之间的连接都会被删除然后重新建立,但是您的IP6地址是相同的,并且从IP6地址到目标IP6地址的所有TCP / IPv6连接仍然是这里。

或者,如果您正在设计您的客户和服务器,你可以设计你的协议,允许客户端以透明的方式重新连接..

答案 2 :(得分:0)

我所知道的是,当使用UDP时,可以保留连接,我的一个应用是通过UDP更改远程网络适配器地址。

对于TCP,我同意Soonts,你应该设计你的服务器和客户端应用程序,以便以透明的方式重新连接。