您的位置:首页 > 移动开发 > Android开发

android模拟器接收不到UDP数据包解决方法

2012-12-12 16:48 543 查看
这是PC与模拟器间UDP包不通的解决方案android模拟器接收不到UDP数据包解决方法

代码如下:

DatagramPacket pack = null;

DatagramSocket mail_data = null;

byte receiver[] = new byte[100];

try {

pack = new DatagramPacket(receiver,receiver.length);

mail_data = new DatagramSocket(22221);

mail_data.receive(pack);

}

catch (Exception e) {

e.printStackTrace();

}

receive函数接收不到数据,一直在等待。

解决方法:

1. 运行模拟器

2. 打开window 命令行

执行:telnet localhost 5554

5554是模拟器的端口,执行之后会进入android console

3. 在console下执行:

redir add udp:22221:22221

其中,第一个端口号是PC的端口,第二个端口号是模拟器端口。(端口映射)

执行此命令之后,会把PC 22221 端口接收到的数据转到模拟器的22221端口,就能从22221端口接收UDP数据包了

也就是说:Android模拟器上的程序UDP接收端口要设为22221,PC服务端要往PC的IP+端口22221发UDP数据包。

redir的语法是:redir

支持下表列出的子命令:

子命令描述注释list列出当前的端口重定向(min 150, max 550)add ::添加新的端口重定向 必须是”tcp” 或 “udp” 是主机上开启的端口号 是向模拟器/设备发送数据的端口号del :删除端口重定向 and 的含义同上

(如果你用的是win7. 默认是没有开启telnet功能的,)

>Start

>Control Panel

>Programs And Features

>Turn Windows features on or off

>Check Telnet Client

>Hit OK

After that you can start Telnet via Command Prompt.
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  Android UDP
相关文章推荐