从USB连接的Android移动设备访问PC的本地主机

问题描述 投票:58回答:9

我有一个通过USB连接到我的PC的Android设备(三星galaxy选项卡)。

我想使用Web服务并在我的Android设备上运行一个位于我的PC的本地xampp服务器上的网页。

如果我的PC和Android设备都连接在同一个无线网络上,我就可以实现它。

但是,只使用USB连接就可以在没有任何无线连接的情况下访问localhost页面。

(PS:当我在模拟器上运行应用程序并使用ip 10.0.2.2访问我的PC上的localhost时,同样的情况也适用)

android
9个回答
25
投票

我终于解决了这个问题。我使用了三星Galaxy S和Froyo。下面的“端口”与您用于模拟器的端口(10.0.2.2:port)相同。我做了什么:

  1. 首先使用USB线连接您的真实设备(确保您可以在设备上上传应用程序)
  2. 从您连接的设备获取IP地址,该地址以192.168.x.x:port开头
  3. 打开“网络和共享中心”
  4. 单击设备上的“本地连接”,然后选择“详细信息”
  5. 将“IPv4地址”复制到您的应用并将其替换为:http://192.168.x.x:port/test.php
  6. 将您的应用(再次)上传到您的真实设备
  7. 转到属性并打开“USB tethering”
  8. 在设备上运行您的应用程序

它现在应该工作。


14
投票

我已经阅读了很多论坛并试过播放应用程序,但直到现在才找到解决方案。

我认为我的情景与你的相似,但我会澄清以帮助别人。我有一个本地托管的网站和我的Android应用程序使用的Web服务。我需要让这个只用我的笔记本电脑进行演示,没有网络连接。

注意:使用我的iPhone作为wifi热点,并连接我的电脑和我的Android设备工作,但iPhone 4S连接速度慢,经常退出。

我的解决方案如下:

  • 拔掉PC上的网线并关闭wifi。
  • 在Android设备上关闭wifi
  • 通过USB将android连接到pc
  • 在Android菜单中打开“USB Tethering”。 (在网络 - >更多......->绑定和便携式热点“)
  • 获取USB系绳指定的计算机IP。 (打开命令提示符并键入“ipconfig”,然后查找USB网络适配器分配的IP)
  • 使用找到的IP地址而不是localhost来打开PC上的浏览器进行测试。即http://192.168.1.1/myWebSite
  • 在android上打开浏览器并测试它的工作原理

5
投票

我在Windows电脑上做到了这一点,它完美无缺!

在您的手机中打开USB Tethering。在计算机的命令提示符下键入ipconfig,找到“ethernet adapter local area connection x”的ipv4(主要是第一个)现在转到您的移动浏览器,输入带有Web应用程序端口号的ipv4。例如: - 192.168.40.142:1342

它适用于这些简单的步骤!


5
投票

谷歌发布了针对here这类问题的解决方案。

步骤:

  • 连接Android设备和开发机器并启用USB调试
  • 在开发计算机中打开Chrome,打开新选项卡,右键单击新浏览器选项卡,单击检查
  • 单击右上方three dots上的三个点图标, - >更多工具,远程设备。
  • 查看屏幕底部,确保您的设备名称出现在带有绿色圆点的列表中。
  • 请在下面的设置部分查看端口转发标记
  • 添加规则。例如,如果您的python Web服务器在您的计算机localhost:5000上运行,并且您想从设备端口3333访问它,则在左侧部分键入3333,然后键入localhost:5000,然后单击添加规则。
  • 瞧,现在您可以从设备访问您的Web服务器了。尝试打开新的浏览器标签,然后从您的设备访问http://localhost:3333

4
投票

这是我的Android应用程序代码的一部分:

此应用程序能够与运行在服务器上的servlet和插入USB-Debuggable模式的Android设备之间的HTTP get-post模型进行通信(因为应用程序正处于开发进度中)。

当服务器Tomcat Apache 7运行时(当应用程序开发完成时),我也可以通过Wi-Fi运行应用程序。

获取你的IP地址

  1. 转到命令提示符
  2. 输入ipconfig
  3. 点击进入

在列表中,IPv4地址是您的IP。


1
投票

通过USB线连接Android手机并访问计算机上的http服务器。

  1. 防火墙 - 关闭它,一旦一切正常,您可以在入站规则下添加规则,启用Apache HTTP服务器(UDP和TCP)(或您正在使用的任何HTTP服务器)警告 - 如果您关闭防火墙,您的计算机将变得脆弱互联网攻击。因此,首先关闭互联网并断开网络连接。
  2. 插入USB线。如果弹出网络窗口,请选择家庭网络。如果它没有弹出它可能设置为公共(这将无法工作),所以转到:控制面板\网络和Internet \网络和共享中心(在win7中)并将其设置为家庭网络。按下它以共享图片,音乐后,它可能会为您提供下一个屏幕...只需单击取消即可。在主屏幕上,家庭网络仍将处于活动状态。
  3. 您需要计算机的IP,localhost或其他别名不起作用。要获取IP,请在Windows的命令提示符下键入ipconfig并查找IPv4地址。 。 。 。 。 。 。 。 。 。 。 :192.168。###。###这是你的手机给你的电脑的IP
  4. 现在你应该完成,在手机的浏览器中,尝试从你的计算机服务器访问测试html文件它应该显示正常。 对于Android开发人员,现在在你的Android代码中,你必须使用“http://”,否则它将无法正常工作。例如:MyAsyncTask.execute(“http://192.168.123.123/test.html”)

第二部分 - 将IP设置为固定/静态。

现在一切正常,每次拔下电缆并重新插上电缆,你的IP都会改变。如果您在代码内部使用它,则每次都必须更新它!解决方案我想到的是将IP设置为静态。

  1. 将手机连接并连接后,返回网络和共享中心,然后单击本地连接“连接:”

screenshot

  1. 在下一个屏幕上选择属性,然后突出显示IP 4并按其中的属性,然后单击“使用以下IP地址”
  2. 将默认网关和子网掩码与ipconfig完全相同,对于IP地址,仅将最后3位数字更改为1到255之间的任何数字

screenshot

该IP将是您的新固定/静态IP,下次插入电话时它将保持不变。


0
投票

检查USB连接类型选项。你应该有一个名为“互联网通过”。这将让您的手机使用与PC相同的连接。


0
投票

我非常喜欢John的答案,但是我想通过在USB连接的Mobile和本地PC上的服务器上运行客户端TCP来对那些想要测试某些客户端//服务器配置的人进行一些更改。

首先很明显,10.0.2.2将无法工作,因为这是一个真正的硬件移动设备而不是模拟器。

所以按照约翰的指示:

  • 拔掉PC上的所有网线并关闭wifi。
  • 关闭Android设备上的wifi
  • 通过USB将Android设备连接到PC
  • 在Android菜单中打开“USB Tethering”(USB调制解调器/ USB蜂窝调制解调器/ USBשימושכמודםסלולרי)。 (在网络 - >更多......->绑定和便携式热点“) 此USB连接将作为单个PC连接的DHCP服务器,因此它将为您的PC分配本地USB网络中的专用(动态)IP。现在,您所要做的就是告诉客户端应用程序此IP和端口。
  • 获取PC的IP(已通过USB系绳电缆分配。)(打开命令提示符并键入“ipconfig”然后查找USB网络适配器分配的IP,在Linux中查找ifconfig或Ubuntu的“连接信息”等等..)
  • 告诉应用程序连接到那个IP(即192.168.42.87),类似于(Java - 客户端): String serverIP = "192.168.42.87"; int serverPort = 5544; InetAddress serverAddress = InetAddress.getByName(serverIP); Socket socket = new Socket(serverAddress, serverPort); ... 请享用..

0
投票

您好,您可以访问您的xampp localhost

  1. 控制面板 - >
  2. windows defender防火墙 - >
  3. 高级设置(左侧) - >入站规则 - >新规则 - >端口 - >在特定本地端口写入您的Apache端口 - >下一步 - >然后您可以使用本地PC访问您的本地主机IP地址:
© www.soinside.com 2019 - 2024. All rights reserved.