我可以使用Android模拟器访问我的笔记本电脑web服务器,我使用10.0.2.2:portno 工作得很好。
但当我连接真正的Android手机时,手机浏览器无法连接到我笔记本电脑上的同一个web服务器。手机和笔记本电脑通过USB线连接。如果我运行 adb devices命令,我可以看到我的手机。
我错过了什么?
我可以使用Android模拟器访问我的笔记本电脑web服务器,我使用10.0.2.2:portno 工作得很好。
但当我连接真正的Android手机时,手机浏览器无法连接到我笔记本电脑上的同一个web服务器。手机和笔记本电脑通过USB线连接。如果我运行 adb devices命令,我可以看到我的手机。
我错过了什么?
当前回答
我的工作(目标:调试运行在localhost:99999上的windows服务器应用程序,从运行在android手机上的客户端应用程序)
电话和电脑连接在同一网络上,例如192.168.1。XXX(在我的情况下通过wifi连接) 在Windows防火墙中开启99999端口 以管理员身份运行cmd: netsh http add urlacl url=http://*:99999/ user=Everyone
然后,可以从手机访问服务应用程序url (my_dev_machine_ip:99999/path_to_service)。
其他回答
我的工作(目标:调试运行在localhost:99999上的windows服务器应用程序,从运行在android手机上的客户端应用程序)
电话和电脑连接在同一网络上,例如192.168.1。XXX(在我的情况下通过wifi连接) 在Windows防火墙中开启99999端口 以管理员身份运行cmd: netsh http add urlacl url=http://*:99999/ user=Everyone
然后,可以从手机访问服务应用程序url (my_dev_machine_ip:99999/path_to_service)。
基于笔记本电脑的移动设备连接wamp服务器的解决方案:
首先,wifi不是路由器。因此,为了将我的移动设备连接到我笔记本电脑上基于localhost的wamp服务器,我需要一个路由器。 我下载并安装了一个免费的虚拟路由器:https://virtualrouter.codeplex.com/
配置它真的很简单:
右键单击系统托盘中的虚拟路由器图标 2 .单击“配置虚拟路由器” 填写密码 如果您的internet连接是以太网,请选择共享连接:以太网 然后在你的笔记本电脑和设备上打开wifi 在您的设备上连接到虚拟路由器网络名
然后你可以通过你的设备连接到你的笔记本电脑,启动浏览器并填写你的笔记本电脑的IPV4地址 (要在windows上找到它,键入CMD: ipconfig,并找到ipv4地址)
您应该看到wamp服务器主页。
“Chrome for Android的端口转发让你更容易在手机上测试你的开发站点。它的工作原理是在移动设备上创建一个监听TCP端口,该端口映射到开发机器上的特定TCP端口。这些端口之间的流量通过USB传输,因此连接不依赖于你的网络配置。”
更多详情请访问:https://developer.chrome.com/devtools/docs/remote-debugging#port-forwarding
Ngrok是最好的解决方案。 如果你正在开发PHP,那么我建议安装Laravel Valet,它有MacOS和Linux版本,然后你可以使用Valet共享命令。如果你正在开发任何前端技术,需要共享一个端口,比如3000,那么直接使用ngrok
Xampp和ngrok
你也可以在Windows中使用ngrok和Xampp。您可以使用以下流程。这很简单。
在ngrok上注册一个免费账户 从下载部分下载ngrok文件并打开它
注意Apache服务器运行的端口。我的情况是80
在ngrok命令行中输入ngrok http YOUR_PORT并复制转发地址
现在你可以在任何设备上使用这个转发链接(即你的物理android设备),它将托管你的本地主机服务器。例如,
取代
http://localhost/my-files/
with
http://YOUR_FORWARDING_ADDRESS/my-files/
使用connectify和xampp或等效,并在移动URL栏上输入ip地址访问