为每个终端窗口设置 IP 地址

为每个终端窗口设置 IP 地址

对于我的项目,我必须用 C 开发 TCP 客户端服务器连接。我已经完成了两个文件,它们都使用本地主机地址 127.0.0.1。但是,我想同时运行两个服务器,例如,一个为 127.0.0.1,另一个为 127.0.0.2。

为此,我想为每个终端窗口设置一个 IP 地址。我还没有找到如何做到这一点。我找到了一些有关环回的信息,ip addr add 127.0.0.2 dev lo但不知道如何使用 IP 运行每个窗口。这可能吗?怎么做?


我知道如果我有不同的端口,或者如果我有不同的服务器代码,只需将一个服务器的指定 IP 更改为 127.0.0.1,另一个服务器的指定 IP 更改为 127.0.0.2,它就会起作用。但是,问题是,我想知道是否可以为每个终端指定一个,这样我就可以在它们上使用相同的服务器代码。这是为了模拟与不同计算机的连接。

目前,我将地址设置为INADDR_ANY,因此任何 127.XXX 的连接都会被接受并正常工作。但同样,在同一个端口号上,这正是我需要的,我想同时运行 2 个或更多服务器,所以我需要不同的 IP。由于 localhost 设置为 127.xxx,我想缩小范围,因此每个终端都会收到 localhost 地址的“部分”

答案1

IP 地址的工作方式并非如此。所有 127.XXX 地址都解析到您的同一 localhost/lo 接口。此外,如果您的服务器侦听/“绑定”任何 127.XXX 地址,则只有在同一台机器上运行的客户端才能连接到它。例如,同一网络上的其他客户端将无法连接到它。

您必须在服务器的 C 代码中指定要监听的 IP 地址(和端口),或者您可以将 IP 作为参数传递给服务器程序。从不同的终端启动相同的代码没有任何区别。

如果要同时运行两个服务器,则必须在不同的 TCP 端口号上运行它们。(这是端口的全部用途)

相关内容