在运行时更改IP地址

时间:2015-06-25 09:19:37

标签: linux sockets tcp vxworks

我正在使用函数socket()bind()listen()创建tcp连接。

我们的客户希望能够在运行时定义服务器的IP地址。有没有办法在运行时更改IP,还是必须在BIOS中完成?

感谢您提供任何提示

2 个答案:

答案 0 :(得分:1)

我多次使用ifAddrSet(..)更改了IP地址。通常我在应用程序运行之前从启动脚本中调用此函数,所以我不知道调用此函数如何影响已连接的套接字。

但是看看ifLib.h提供的功能。我相信你会找到适合你需求的东西(ifAddrAdd(..)看起来很有希望)。

答案 1 :(得分:0)

我不确定您在运行时定义服务器的IP地址是什么意思?'。显然,对于给定的scipy.signal.lfilter,它的IP地址无法更改。它是连接的端点,无法更改运行时间。如果您只想为可能的主机分配多个IP地址。

一般情况下 - 您可以根据需要为您的机器添加任意数量的IP地址(确切地说不是),但肯定会大约一百个(即静态分配)。这不是问题(管理那是一场噩梦,但肯定不是不可能的)。问题是如何达到这些IP地址(不在您的控制范围内),这取决于客户端上的设置,尤其是路由条目。例如。您可以使用子网中的所有IP地址(例如socket)。

不推荐 - 但可能。

拥有这些IP地址后,您10.1.2/24的端口和地址为bind,表示接受任何'本地地址。可以使用INADDR_ANY在服务器上确定建立连接的地址。