`
jeffrey123
  • 浏览: 24067 次
  • 性别: Icon_minigender_1
  • 来自: 南京
最近访客 更多访客>>
社区版块
存档分类
最新评论

Android 模拟器接受UDP/TCP数据报

阅读更多

今天在使用模拟器调试远程视频播放的时候,遇到收不到数据包的情况, 最后我解决了, 希望这个可以给大家帮助:

 

应用场景:采用的select机制,但是select的返回值一直是0, 通过抓包工具发现,远程的server在一直发视频数据给客户端。问题就出在socket 收不到数据, 所以select检测不到fd上有数据。

 

 

解决办法: 端口的重定向:

 

为什么要做端口重定向呢?

开发的过程中遇到一个问题:android的模拟器有个很诡异的特点,就是访问网络的时候只可以从模拟器主动往出去连。但是却无法主的从外面连接模拟器,这个特点和NAT几乎完全一样,具有单向连接的特性。

实际开发中我们希望模拟器像一台独立的手机一样,能和处于同一局域网中的手机进行端对端的通信。这时就需要做端口重定向。

类似于给路由器做nat的端口重定向。下面几步:

>运行模拟器:你会发现模拟器标题栏上写着端口号:5554,其实这个端口号是模拟器的console端口

>telnet到模拟器的console口上:telnet localhost 5554

(如果你用的是win7. 默认是没有开启telnet功能的,开启的方法看这里http://hi.baidu.com/lzhts/blog/item/2442d162a0c618cfe6113ae2.html)

>在控制台下输入 redir add tcp:7778:9998 就完成了从主机7778端口重定向到模拟器9998端口的任务

redir的语法是:redir <list|add|del>

支持下表列出的子命令:

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

分享到:
评论
3 楼 lenomon 2012-04-07  
dengbin50 写道
谢谢,在你的帮助下我解决了问题!

那多多关注我博客,谢谢

这里有个关于垂直滚动的方法汇总:android垂直自动滚动
2 楼 dengbin50 2012-04-05  
谢谢,在你的帮助下我解决了问题!
1 楼 lenomon 2012-03-11  

相关推荐

    android串口、TCP,UDP socket编程实践(android端)

    花了几天时间,将TCP、UDP、串口整合到一起做了个小的project,由于没有真机,仅在模拟器上测试通过,且都是在一台机子上,现贴出代码,希望对大家有所帮助。注意涉及IP地址的地方可能需要修改成你自己的地址

    [中文]Basic4android新手指南_第1章从这里开始

    开发者可以在Basic4android环境下利用Android模拟器或Android物理设备(利用USB连接或通过本地网络连接)进行程序开发和调试。 Basic4android带有丰富的库函数,支持所有的Android 核心特性,因而使其非常容易进行...

    [中文]Basic4android新手指南_第5章屏幕大小与分辨率

    开发者可以在Basic4android环境下利用Android模拟器或Android物理设备(利用USB连接或通过本地网络连接)进行程序开发和调试。 Basic4android带有丰富的库函数,支持所有的Android 核心特性,因而使其非常容易进行...

    [中文]Basic4android新手指南_第3章第二个程序(SecondProgram.b4a)

    开发者可以在Basic4android环境下利用Android模拟器或Android物理设备(利用USB连接或通过本地网络连接)进行程序开发和调试。 Basic4android带有丰富的库函数,支持所有的Android 核心特性,因而使其非常容易进行...

    RRCpacketSniffer:Android应用程序可同时捕获tcp udp和icmp数据包以及由此产生的RRC状态转换

    RRCpacketSniffer是一个Android应用程序,可用于同时捕获tcp udp和icmp数据包以及由此产生的RRC状态转换。 该应用程序是本文研究中讨论的工具的有效实现, 描述 量化应用程序的信令效率需要以下信息: 交换的...

    [中文]Basic4android新手指南_第10章变量与对象

    开发者可以在Basic4android环境下利用Android模拟器或Android物理设备(利用USB连接或通过本地网络连接)进行程序开发和调试。 Basic4android带有丰富的库函数,支持所有的Android 核心特性,因而使其非常容易进行...

    [中文]Basic4android新手指南_第2章我的第一个程序(MyFirstProgram.b4a)

    开发者可以在Basic4android环境下利用Android模拟器或Android物理设备(利用USB连接或通过本地网络连接)进行程序开发和调试。 Basic4android带有丰富的库函数,支持所有的Android 核心特性,因而使其非常容易进行...

    Android RTSP播放器源码

    本源码是一个RTSP播放器源码。目前只能播放标准的rtsp+H.264、 rtp支持tcp和udp传输,但是udp方式模拟器接收不到流,真机可以,模拟器可采用tcp方式,传输协议填554就是tcp,默认0为udp。

    20131027_Basic4android_v2.71自带库双语翻译

    开发者可以在Basic4android环境下利用Android模拟器或Android物理设备(利用USB连接或通过本地网络连接)进行程序开发和调试。 Basic4android带有丰富的库函数,支持所有的Android 核心特性,因而使其非常容易进行...

    Android C++高级编程:使用NDK_Onur Cinar, 于红PDF电子书下载 带书签目录 完整版

    9.2.2 从Socket接收数据报:recvfrom 221 9.2.3 向Socket发送数据报:sendto 223 9.2.4 原生UDP Server方法 224 9.3 将原生UDP Client方法加入Echo Client Activity中 225 9.4 实现原生UDP Client 226 9.5 运行...

    Android典型技术模块开发详解

    1.3 Android模拟器 1.3.1 ADB工具 1.3.2 其它常用工具 1.4 本章小结 第2章 应用程序构建 2.1 创建Android工程 2.2 HelloAndroid详解 2.2.1 程序结构 2.2.2 代码分析 2.3 权限permission 2.4 LogCat日志调试 2.5 示例...

    Basic4android库分析器兼智能提示文本汉化工具

    开发者可以在Basic4android环境下利用Android模拟器或Android物理设备(利用USB连接或通过本地网络连接)进行程序开发和调试。 Basic4android带有丰富的库函数,支持所有的Android 核心特性,因而使其非常容易进行...

    易语言-ACC安卓无障碍助手

    1 UDP扫描局域网内存在的手机或模拟器。 2 TCP申请连接手机或模拟器。 3 TCP解包,组包。可以识别粘包。 4 ACC命令发送,接收。 5 节点JSON按时间保存,读取。采用E2EE键值表解析。 6 截屏命令发送,接收显示。 7 JS...

    JAVA上百实例源码以及开源项目源代码

    Java 组播组中发送和接受数据实例 3个目标文件。 Java读写文本文件的示例代码 1个目标文件。 java俄罗斯方块 一个目标文件。 Java非对称加密源码实例 1个目标文件 摘要:Java源码,算法相关,非对称加密  Java非...

    JAVA上百实例源码以及开源项目

    Java 组播组中发送和接受数据实例 3个目标文件。 Java读写文本文件的示例代码 1个目标文件。 java俄罗斯方块 一个目标文件。 Java非对称加密源码实例 1个目标文件 摘要:Java源码,算法相关,非对称加密  Java非...

Global site tag (gtag.js) - Google Analytics