使用python通过socket将字符串从windows发送到vmware-ubuntu

时间:2014-10-07 09:28:29

标签: python linux sockets python-2.7 vmware

我正在尝试将Windows中的字符串发送到同一台机器上的linux vmware。

我做了以下事情: - 在linux机器上的127.0.0.1端口50000上打开一个套接字并在while循环中读取套接字。我的编程语言是python 2.7 - 使用来自windows机器的127.0.0.1端口50000上的nc(netcat)发送命令(使用cygwin)。

但是,虽然通过windows / cygwin发送的命令成功,但我在linux机器上没有收到任何命令。

我在VMWARE计算机上使用NAT(共享主机IP地址)。

哪里可能是问题?

2 个答案:

答案 0 :(得分:1)

使用NAT时,主机无法直接联系客户端计算机。您所能做的就是使用端口转发来告诉vmware,指向主机上指定端口的所有流量都将传送到客户端。它旨在在客户端计算机上安装可以从主机外部访问的服务器。

如果要测试主机和客户端之间的网络操作,则应在客户端计算机上配置仅主机适配器。它是主机和客户机之间的虚拟网络(多个客户端可以共享同一个主机网络,当然还有不同的地址)

我通常在客户端计算机上配置2个网络适配器:

  • 一个NAT,让客户端机器可以访问开放世界
  • 仅限主机,在主机和客户端之间拥有专用网络,并允许它们与任何端口上的任何协议通信

您还可以在客户端上使用桥接接口。在此模式下,客户端计算机在与主机的外部网络相同的网络上具有地址:它结合了以前的两种模式

答案 1 :(得分:0)

您的问题是多方面的


<强> 1 ST

设置 Ubuntu-VM的IP网络&amp;此来宾O / S的静态IP地址

<强> VALIDATE:

$> ifconfig                         // list all setup Ubuntu interfaces/addresses

<强> 2 第二

如果您的VM guest虚拟机被托管为连接到不同的IP网络,而不是Windows系统,确保这两台主机之间存在连接和路由(VmWare中的VMnet配置器将有助于要解决这个问题很多。)

<强> VALIDATE:

C:\ ping <aUbuntuVmIpADDRESS>      // prove an online visibility Win->UbuntuVM

第3 RD

确保您的Windows操作系统允许使用您选择的TCP端口#

<强> VALIDATE:

  

列出Windows防火墙设置中所有允许/添加的if-need TCP-port#


4

确保你的python将所有套接字流量发送到Windows本地环回接口&lt; 127.0.0.1&gt;,但是 Ubuntu-VM 来宾O / S的可见 IP地址(按步骤设置 - 1 ,按步骤验证< - kbd> 2 使用未使用的,允许的TCP端口#(根据步骤验证/设置 - 3