我是Android开发的新手,我希望你能帮助我。
我在Linux中使用android studio来开发UPnP应用程序。 在我的PC上,有2个网络,1个通过eth0连接到互联网,另一个通过eth1连接到专用网络。
当我启动我的应用程序时,它可以找到位于网络中的UPnP服务器,它连接到eth0但不是连接到eth1的服务器。
通过查看Setting up Redirection through the Emulator Console,我发现了一种将网络从端口1900重定向到Android模拟器的方法,我的应用程序现在可以在专用网络中找到UPnP服务器。
Android Console: type 'help' for a list of commands
OK
redir add udp:1900:1900
OK
redir add udp:51844:51844
OK
redir add tcp:80:80
KO: can't setup redirection, port probably used by another program on host
问题是无法将协议tcp从端口80重定向到流视频。
我的问题是:
1-有没有办法告诉android模拟器监听eth1而不是eth0。或者如果可能的话,同时听取eth0和eth1。
2-如果没有,我如何重定向端口80以便使用我的应用程序流式传输视频?
感谢您的帮助。
答案 0 :(得分:0)
我以前遇到过类似的问题。 (但是那个时候终于在VM上改为Android到x86了。)
问题1:
1-有没有办法告诉android模拟器监听eth1而不是eth0。或者如果可能的话,同时听取eth0和eth1。
只是一些想法,
执行sudo ip link set eth0 down
然后启动Android模拟器,我猜模拟器应绑定到eth1
,然后再次启动eth0
。抱歉,我没有在Linux上工作,无法验证。
2-如果没有,我如何重定向端口80以便使用我的应用程序流式传输视频?
在您的Linux PC上似乎正在使用80端口,因此找出正在使用的进程然后暂时停止它。
sudo netstat -nlp | grep 80
,我认为可能是nginx
或apache
。在sudo killall YOUR_SERVER
之后,redir add tcp:80:80
可能有效。
此外,如果eth0
运作良好,您可能不需要打扰redir
。只需使用iptables
并设置从eth0
到eth1
的必要转发。
以下链接可能有所帮助:https://help.ubuntu.com/community/IptablesHowTo