【问题标题】:Receive realtime data from phone从手机接收实时数据
【发布时间】:2015-10-08 13:37:38
【问题描述】:

我正在使用一个 android 应用程序,它将实时加速度计数据流式传输到服务器的指定 IP 地址。我用 C 语言编写了一个运行在 VMware 中的 Linux 上的“服务器”。

我已连接到由运行 VMware Workstation 的 Windows7(主机)创建的热点。

所以我的问题是如何将虚拟机连接到与热点相同的网络,以便我可以在同一网络上获取手机和“服务器”程序并将数据流式传输到服务器程序?

【问题讨论】:

  • 你能从设备ping主机吗?你能从宿主机访问虚拟机中的服务吗?

标签: linux windows-7 server virtual-machine


【解决方案1】:

我使用 VirtualBox,但我猜 VMWare Workstation 中的设置非常相似。

您可能需要执行以下一项或两项操作:

1) 端口转发。如果您的应用程序正在访问端口 80(或任何端口),您需要告诉 VMWare,该端口上进入主机的任何命中都会转发到 VM。当然,你的虚拟机必须在那个端口上监听。我建议使用高端口号(超过 1024)以最大限度地减少冲突,并避免使用低端口号出现烦人的 root/admin 问题。

2) 希望这能让你到达那里。如果没有,您可能需要更改 VM 上的虚拟适配器设置。 NAT 模式是一个很好的第一次尝试。如果没有,您可以修改其他模式(桥接、内部、仅主机)。 (不确定 VMWare 是否使用不同的名称)

这可能就是您所描述的拓扑所需要的全部内容——Android 设备直接连接到与主机相同的子网。如果没有,也许您的热点将所有客户端流量路由到网关(即到 Internet),而不允许直接访问 localhost。如果是这样,也许有相应的设置。如果没有,ngrok 是你最好的新朋友。

它非常简单,允许您将来自 Internet 上任何地方的流量通过隧道传输到您计算机上运行的特定服务。这将回避上述一些问题。

如果您想将您的 Android 设备带到另一个网络(例如手机网络),那么 ngrok 绝对是您的最佳选择,特别是对于开发和原型设计。这可以让您避免 DNS、路由、防火墙等方面的问题。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-05-13
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多