当客户端在虚拟机上运行时,getpeername()返回我的本地主机地址

时间:2016-12-19 14:04:40

标签: c++ sockets vmware

  • 我在本地计算机上运行应用程序服务器,在虚拟机上运行应用程序客户端(Windows Server 2012)。
  • 我正在使用NAT网络设置。

当我从服务器调用getpeername()时,我获取主机地址和而不是虚拟机地址。客户端和服务器在不同的域上运行。

当我的客户端从虚拟机(在不同的域)进行通信时,为什么这个getpeername()总是返回我的本地主机地址,我有点困惑。

任何建议都将受到赞赏。

1 个答案:

答案 0 :(得分:2)

这并不奇怪。它几乎是NAT(网络地址转换)的定义。虚拟机地址在主机上转换为on。