我可以使用Android模拟器访问我的笔记本电脑web服务器,我使用10.0.2.2:portno 工作得很好。
但当我连接真正的Android手机时,手机浏览器无法连接到我笔记本电脑上的同一个web服务器。手机和笔记本电脑通过USB线连接。如果我运行 adb devices命令,我可以看到我的手机。
我错过了什么?
我可以使用Android模拟器访问我的笔记本电脑web服务器,我使用10.0.2.2:portno 工作得很好。
但当我连接真正的Android手机时,手机浏览器无法连接到我笔记本电脑上的同一个web服务器。手机和笔记本电脑通过USB线连接。如果我运行 adb devices命令,我可以看到我的手机。
我错过了什么?
当前回答
首先,让你的机器(服务器运行的地方)IP地址是静态的。在android代码中输入此静态IP地址。 接下来进入你的wifi路由器接口,检查左边的面板。您将看到端口转发/转发等选项。点击它并转发端口80。 现在编辑httpd .conf文件,并将其编辑为
所有人允许
. 重新启动服务器。现在一切都可以正常工作了。
此外,您可以保留您的机器的IP地址,以便始终分配给您。 在路由器接口的左面板中,找到DHCP -> Address Reservation,单击它。输入计算机的MAC地址和您在代码中输入的IP地址。单击保存。这将为您的机器保留给定的IP地址。
其他回答
即使您的移动设备和电脑通过usb连接,此解决方案也可用:
此时需要使用端口转发功能。 在谷歌chrome inspect窗口(chrome://inspect)可以看到连接的设备。
点击端口fowading按钮,并设置一个随机端口,例如3000到您的笔记本电脑使用的端口,例如8080。
现在从设备上使用localhost:3000来访问笔记本电脑中的localhost:8080(or_whatever_ip:portno)。 您可以在移动浏览器中查看。在移动浏览器中尝试localhost:3000。 确保勾选“端口转发设置”窗口中的“启用端口转发”复选框
“Chrome for Android的端口转发让你更容易在手机上测试你的开发站点。它的工作原理是在移动设备上创建一个监听TCP端口,该端口映射到开发机器上的特定TCP端口。这些端口之间的流量通过USB传输,因此连接不依赖于你的网络配置。”
更多详情请访问:https://developer.chrome.com/devtools/docs/remote-debugging#port-forwarding
默认localhost的更简单方法是使用http://localhost:port。这也适用于笔记本电脑和安卓系统。
如果它不工作,然后在android设置您的手机的默认IP 127.0.0.1:端口:)
打开终端并输入:-
hostname -i
#127.0.0.1
hostname -I
#198.168.*.*
这对我来说是有用的,我在127.0.0.1 ip后添加了另一行,以指定我想使用的设备的确切本地网络ip地址(而不是公共ip地址)。我用的是三星Galaxy S3
根据Bangptit的建议,编辑httpd.conf文件(x是版本号): C: \ wamp \ bin \ apache \ Apache2.x.x \ conf \ httpd . conf
搜索onlineoffline标签,并添加您的电话的ip(我发现我的电话ip地址在我的路由器配置页面):
Onlineoffline标签-不要删除
Order Deny,Allow
Deny from all
Allow from 127.0.0.1
我的电话IP在下面一行
Allow from 192.168.1.65
Allow from ::1
Allow from localhost
可以将其扩展到包括整个子域,例如192.168.1.0/24等
Windows解决方案:
你无法浏览你的网站,主要是因为你的防火墙( 默认操作系统防火墙或防病毒防火墙)正在阻止传入 连接。
Windows防火墙下:
要允许特定端口上的传入连接,请转到:
控制面板> Windows防御防火墙>高级设置>右侧 单击“入站规则>添加新规则”。 然后: 选择“端口”单选按钮。 输入要在其上启用传入连接的特定端口/范围(服务器正在运行的端口) 选择“允许连接”单选按钮。 单击Next(除非您想更改默认值) 给规则起个名字,然后单击Finish。
注意:
如果您正在使用带有防火墙的防病毒软件,那么上述步骤将不起作用,因为防病毒软件将禁用Windows防火墙,而是运行自己的防火墙。
在这种情况下,根据防病毒程序,转到您的防病毒防火墙设置并打开端口。