我在 Windows Server 2008 中遇到多个进程需要将 TCP 套接字绑定到同一端口的问题。
目前,我认为这会导致一些意外的不稳定行为,因为存在进程之间的竞争条件,您无法知道哪个数据包将被传送到哪个进程。
将进程分离到不同的机器显然是不可能的,所以我想尝试的一个解决方案是通过不同的 IP 地址绑定这个端口。
现在,我知道我可以netsh interface ipv4 add address
在 Windows 中添加静态 IP。但是,是否可以添加地址并允许 DHCP 为每个虚拟接口分配 IP?
答案1
如果这是一台虚拟机,一种方法就是简单地添加虚拟网络接口,每个接口都运行 DHCP。
但实际上,我认为通过 DHCP 请求 IP 地址并没有多大意义,因为您必须配置服务器进程本身以绑定到特定 IP 地址,如果您通过 DHCP 分配,这些地址可能会发生变化。也许如果您可以绑定到接口而不是 IP 地址,那么这仍然有意义。这取决于所涉及的应用程序。
分配多个静态 IP 地址可能更有意义。
仅供参考,您不需要使用 netsh 来执行此操作,可以在高级按钮下的接口 IPv4 属性中完成此操作。您可以在那里添加多个地址。