首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >从Windows向VMware计算机发送UDP消息时要使用的网络连接?

从Windows向VMware计算机发送UDP消息时要使用的网络连接?
EN

Stack Overflow用户
提问于 2015-10-11 01:33:51
回答 1查看 886关注 0票数 1

我正在做一个小小的套接字编程,遇到了一个我不明白的网络行为;我希望有人能对正在发生的事情有所了解。

我在电脑上运行Windows 7专业版。我已经安装了VMware,并且正在VMware会话中作为目标运行QNX中微子实时操作系统。因此,Windows PC是主机PC,来宾操作系统是QNX中微子实时操作系统。我将虚拟机配置为使用NAT网络连接。

好了,接下来是IP和接口配置。在我的Windows机器上运行“ipconfig”将提供以下信息:

代码语言:javascript
运行
复制
Windows IP Configuration

Ethernet adapter Local Area Connection:

  Connection-specific DNS Suffix  . :
  IPv4 Address. . . . . . . . . . . : 192.168.1.100
  Subnet Mask . . . . . . . . . . . : 255.255.255.0
  Default Gateway . . . . . . . . . : 192.168.1.1

Ethernet adapter VMware Network Adapter VMnet1:

  Connection-specific DNS Suffix  . :
  Link-local IPv6 Address . . . . . : fe80::c558:ae9f:e58e:e005%24
  IPv4 Address. . . . . . . . . . . : 192.168.184.1
  Subnet Mask . . . . . . . . . . . : 255.255.255.0
  Default Gateway . . . . . . . . . :

Ethernet adapter VMware Network Adapter VMnet8:

  Connection-specific DNS Suffix  . :
  Link-local IPv6 Address . . . . . : fe80::fce2:d22f:9ec:bd005%25
  IPv4 Address. . . . . . . . . . . : 192.168.248.1
  Subnet Mask . . . . . . . . . . . : 255.255.255.0
  Default Gateway . . . . . . . . . :

(** Other entries omitted for brevity **)

当我在VMware QNX系统上运行“ifconfig”时,我得到以下信息:

代码语言:javascript
运行
复制
lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> mtu 33192
        inet 127.0.0.1 netmask 0xff000000
ni0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500
        capabilities rx=7<IP4CSUM,TCP4CSUM,UDP4CSUM>
        capabilities tx=3f<IP4CSUM,TCP4CSUM,UDP4CSUM,TCP6CSUM,UDP6CSUM,TSO4>
        enabled=0
        address: 00:0c:29:04:00:ae
        media: Ethernet autoselect (1000baseT full-duplex)
        status: active
        inet 192.168.184.15 netmask 0xffffff00 broadcast 192.168.184.255
ni1: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500
        capabilities rx=7<IP4CSUM,TCP4CSUM,UDP4CSUM>
        capabilities tx=3f<IP4CSUM,TCP4CSUM,UDP4CSUM,TCP6CSUM,UDP6CSUM,TSO4>
        enabled=0
        address: 00:0c:29:04:00:b8
        media: Ethernet autoselect (1000baseT full-duplex)
        status: active
        inet 192.168.248.15 netmask 0xffffff00 broadcast 192.168.248.255

到现在为止还好。现在,运行在VMware机器上的套接字程序可以成功地从VMware IP地址192.168.184.15 (端口65527)向Windows 192.168.1.100 (端口2023)发送VMware消息,而我的VMware套接字程序则接收消息。但是,当我试图在192.168.248.15 (端口2045)从具有IP地址192.168.1.100 (端口2044)的Windows计算机向VMware计算机发送UDP消息时,消息不知何故没有到达目的地。我确实使用Wireshark验证了UDP消息是否与预期的IP源地址和IP目标地址连接在一起,但即便如此,运行在VMware机器上的套接字程序仍然没有接收到UDP消息。

不过,我能做的是从具有IP地址192.168.248.1到192.168.248.15的Windows机器发送一条UDP消息。当我这样做时,运行在VMware机器上的套接字程序将获得UDP消息。但我想知道的是,为什么我不能成功地从192.168.1.100到192.168.248.15发送信息呢?我是否需要使用其他类型的网络连接,而不是NAT?

EN

Stack Overflow用户

回答已采纳

发布于 2015-10-11 08:04:38

NAT是您能够从您的VMWare机器发送和接收而不是反向的原因。

原因是在发送时,NAT将构建一个包含原始IP地址和端口的转换表,然后使用不同的IP地址和端口。当回答出现时,将查询此表,并将答复委托回原来的IP地址和端口。

如果在翻译表中没有条目的消息出现,该消息将被删除。这也是为什么你不能发送消息说你的邻居,如果他是背后的典型家庭路由器,也使用NATPAT。

您可以通过使用非迭代区域或端口转发来解决此问题。但是我不知道如何在vm中这样做。

票数 1
EN
查看全部 1 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33060709

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档