当前位置: 代码迷 >> 综合 >> Centos7中docker的stf 连接 局域网中 windows下的Android机
  详细解决方案

Centos7中docker的stf 连接 局域网中 windows下的Android机

热度:92   发布时间:2024-02-06 14:14:33.0
其实整个过程很简单,但是刚开始的我,有点乱。整明白了,留一笔。
环境:Centos7 内网服务器地址:192.168.0.189 (上面搭建了docker的stf)本机地址:192.168.16.123docker按照上一篇文章搭建即可。需求:我要将本机上的Android,展示在STF界面上将一波通俗易懂的原理:
现在如果将Android直接连在Centos上,使用192.168.0.189:7100 直接可以看到已经看到了。
原来开启stf的命令是:
##docker run -d --name stf --net host openstf/stf stf local --public-ip 本地ip大概意思是:只要连在本地ip这台电脑上的机器,都可以显示出现。
现在需要显示其他电脑上的Android机器,那就得指定电脑,告诉stf,到底局域网中需要显示哪台电脑上的
那就用到新的一条docker命令:
##docker run -d --name stf_provider --privileged=true --net host openstf/stf stf local --public-ip 192.168.0.189 --adb-host 192.168.16.123 --adb-port 5037 --allow-remote1.先将docker中原有的stf,stop
2.杀掉docker宿主机中的5037端口
3.再将局域网中电脑的5037端口暴露给其他机器:
adb -a -P 5037 fork-server server
或者 adb nodaemon server -a -P 5037
4.执行命令:docker run -d --name stf_provider --privileged=true --net host openstf/stf stf local --public-ip 192.168.0.189 --adb-host 192.168.16.123 --adb-port 5037 --allow-remote
关键词: --adb-host:局域网中那台机器的ip,可以对应上面说的环境--name stf_provider 这里的name不要和原来stf的名字一样,不然会提示你已经存在。你也可以删了原来stf的容器
此时,没有意外的话,就可以显示局域网中的Android机了可以使用docker logs stf_provider来查看stf_provider容器的日志。如果第四步操作后docker有这个提示:
INF/provider 46 [*] Receiving input from "tcp://127.0.0.1:7114"
Unhandled rejection Error: spawn adb ENOENTat _errnoException (util.js:1024:11)at Process.ChildProcess._handle.onexit (internal/child_process.js:190:19)at onErrorNT (internal/child_process.js:372:16)at _combinedTickCallback (internal/process/next_tick.js:138:11)at process._tickCallback (internal/process/next_tick.js:180:9)
就说明第二步没有做好。是宿主机的5037端口,强调一点。如果第三步操作后有这个提示:
C:\Users\2018>adb nodaemon server -a
adb F 08-04 23:20:29 15316  9996 main.cpp:153] could not install *smartsocket*
istener: cannot bind to 0.0.0.0:5037: 閫氬父姣忎釜濂楁帴瀛楀湴鍧?(鍗忚?/缃戠粶
鍦板潃/绔?彛)鍙?厑璁镐娇鐢ㄤ竴娆°??(10048)
需要将局域网中的电脑的5037端口删了:
C:\Users\2018>netstat -ano | findstr "5037"TCP    127.0.0.1:5037         0.0.0.0:0              LISTENING       15920
C:\Users\20180>taskkill /pid 15920 /f
成功: 已终止 PID 为 15920 的进程。

 

  相关解决方案