android udp端口释放,android udp 端口映射方法

源文地址:http://hi.baidu.com/profoot/blog/item/d622b7fa86f299334e4aeab5.html

最近在模拟器上调试udp通信,在开发机上用SocketTool开了一个udp server,发现SocketTool能收到模拟器上调试的应用发出的消息,但是服务器反馈给模拟器的应答却始终收不到。在手机上调试却没有这个问题,怀疑问题出现模拟器上,看了一下SDK文档模拟器的网络机制部分,有这么一段话。

Each instance of the emulator runs behind a virtual router/firewall service that isolates it from your development machine's network interfaces and settings and from the internet. An emulated device can not see your development machine or other emulator instances on the network. Instead, it sees only that it is connected through Ethernet to a router/firewall.

大概意思就是开发机和模拟器之间还隔着一层防火墙,模拟器是看不到开发机的(很像NAT)。要让模拟器能正常收发数据,必须进行对模拟器设置端口重定向。并且在模拟器上如果要访问开发机需要使用10.0.2.2这个地址(virtualbox也是用这些地址)。

有两种方法可以设置重定向,利用模拟器的console,或者用adb。

1、利用模拟器的console

telnet连接到console,启动的第一个模拟器的console端口是5554(后面启动的模拟器依次增加2,因为一个模拟器占用两个端口,5555是留给adb的,若后面又开了一个模拟器,那么console端口就是5556)。

telnet 127.0.0.1 5554

如果要增加一条重定向设置,采用如下命令

redir add ::

例如:redir add udp:5000:6000  这样所有在开发机上5000端口的udp通信都会被重定向到模拟器的6000端口上。

添加成功后,我们可以用redir list命令来列出已经添加的映射端口,redir del可以惊醒删除。

2、利用adb命令

adb forward tcp:6100 tcp:7100

这样就将宿主机的6100端口映射到模拟器的7100端口上(将tcp改成udp,会一直提示绑定失败)

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值