【发布时间】:2016-12-19 14:04:39
【问题描述】:
- 我在本地计算机上运行应用程序服务器,在虚拟机 (Windows Server 2012) 上运行应用程序客户端。
- 我正在使用 NAT 网络设置。
当我从服务器调用getpeername() 时,我得到的是主机地址而不是虚拟机地址。客户端和服务器在不同的域上运行。
我有点困惑,为什么当我的客户端从虚拟机(在不同的域上)进行通信时,这个 getpeername() 总是返回我的本地主机地址。
任何建议将不胜感激。
【问题讨论】:
-
由于您使用的是 NAT,服务器无法看到客户端的真实地址。如果您要进行数据包捕获(wireshark 或类似),您还会看到从服务器看到的 TCP 连接没有原始客户端地址作为源。