这是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.

更多相关文章

  1. “罗永浩抖音首秀”销售数据的可视化大屏是怎么做出来的呢?
  2. Nginx系列教程(二)| 一文带你读懂Nginx的正向与反向代理
  3. Nginx系列教程(三)| 一文带你读懂Nginx的负载均衡
  4. 不吹不黑!GitHub 上帮助人们学习编码的 12 个资源,错过血亏...
  5. Android(安卓)adb shell 命令大全
  6. android数据库操作:根据过滤条件获取部分通讯录信息
  7. Android(安卓)SDK 使用技巧
  8. Android(安卓)常用Adapter(ArrayAdapter ,SimpleAdapter ,BaseAdapt
  9. android关于获取摄像头帧数据转成图片

随机推荐

  1. i-jetty环境搭配与编译
  2. Android中圆形和条形ProgressBar设置颜色
  3. Android(安卓)Virtual Device Manager 创
  4. Android(安卓)适配器Adapter的学习
  5. Android(安卓)多媒体
  6. android 适配器Adpter的使用总结 之 Curs
  7. 使用GreenDroid开源项目
  8. android上传图片和参数(属性)到服务器
  9. Android(安卓)jni调用第三方so库和.h文件
  10. Android中SQLite数据库存储方式 .(转)