您当前的位置:首页 > 计算机 > 编程开发 > 安卓(android)开发

让Android手机的localhost映射到电脑

时间:02-05来源:作者:点击数:

在电脑上启动Tomcat,手机上要想访问电脑上的Tomcat服务,需要使用ip去访问,而不能用localhost,今天在学习一个android的网络配置时,发现了一个黑科技,竟然可以把手机上的一个端口映射成电脑的端口,命令如下:

adb reverse tcp:8080 tcp:8080

然后,我们在手机浏览器上输入:localhost:8080就可以访问到我们电脑上的Tomcat服务器了,有点神奇啊,当我拨掉数据线时,发现访问就不行了,所以它的原理应该是通过USB数据线实现的,adb reverse tcp:8080 tcp:8080的功能就是让手机对8080的端口的访问指向电脑,而这个访问必须经过USB来数据线来访问,所以,你手机连不连Wifi无所谓的,没插SIM卡也没问题,因为它是通过USB来通信的嘛!

对应的,也可以把手机上的端口给电脑用,这样在电脑浏览器上就可以访问手机上的服务,对应的命令是adb farword,具体可参考:https://www.cdsy.xyz/computer/programme/android/230205/cd40193.html

输入adb help也可查看到对应命令的格式说明。比如可以看到它的取消映射的命令为:adb reverse --remove-all

谷歌的例子在此,此例子有几个值得学习的地方,有androd应用源代码(使用MVP模式,非常值得学习,因为应用很简单,比较容易学),可直接使用运行,而且提供服务端数据,还教我们如何使用nodejs搭一个服务器,非常简单,这个服务器可以随便把任意一个目录当成一个web应用。

1、先下载nodejs并安装(双击下一步一下步就搞定了)

2、安装服务器:cmd命令:npm install http-server -g

3、把指定的目录当成一个web应用:先cmd进入到web应用目录,然后执行cmd命令:http-server ./ -p 8080,这样就把指定的目录运行为一个web应用了,端口号为8080,在浏览器上输入:localhost:8080即可访问。

此例子还教我们创建证书,把服务器配置成https,真心好!

对了,还有很棒的测试用例,我们可以学一学别人怎么写测试用例的。

生成证书的命令还是敲一下吧,避免以后网址不能访问了:

前提,它有一个openssl_config.txt的配置文件,内容如下:

[req]
default_bits = 2048
prompt = no
default_md = sha256
req_extensions = v3_ca
distinguished_name = dn

[dn]
C=US
O=Debug certificate
CN=localhost

[v3_ca]
basicConstraints = CA:FALSE
keyUsage = nonRepudiation, digitalSignature, keyEncipherment
subjectAltName = DNS:localhost,IP:127.0.0.1

cmd命令目录到这个配置文件的目录下,然后执行下面的命令:

# Create a certificate authority

openssl genrsa -out root-ca.privkey.pem 2048

# Sign the certificate authority

openssl req -x509 -new -nodes -days 100 -key root-ca.privkey.pem -out root-ca.cert.pem -subj “/C=US/O=Debug certificate/CN=localhost” -extensions v3_ca -config openssl_config.txt

# create DER format crt for Android

openssl x509 -outform der -in root-ca.cert.pem -out debug_certificate.crt

执行这三个命令后,会生成3个文件:

root-ca.privkey.pem (私钥,用于服务器)

root-ca.cert.pem (用于服务器)

debug_certificate.crt (用于Android)

方便获取更多学习、工作、生活信息请关注本站微信公众号城东书院 微信服务号城东书院 微信订阅号
推荐内容
相关内容
栏目更新
栏目热门