最近在写安卓UDP通信程序时遇到这个问题,就是在安卓模拟器上可以实现收发,但是放到真机上就只能发收不到PC机发来的数据。在网上查了一些资料,发现有很多朋友也遇到这个问题,都没有非常明确的解决方法,我经过尝试终于在真机上收到了PC机发的数据,跟大家分享一下。我用的是eclipse开发环境,安卓虚拟机为2.2版本。为方便讲解,先贴几张图:
图一 安卓模拟器界面
图二 PC机服务程序界面
图一为安卓虚拟机上的界面,在真机上除了文字位置有一些错位外其它都一致(偷个懒就不贴真机效果的照片了),远程IP地址是你的PC端服务程序所在PC的公网IP;远程端口是PC服务程序接收端口;本地端口是手机发送数据时用的端口。图二为测试时用的一个PC端服务程序。PC机上的服务程序必须要能解析出包中的IP和端口号,建议用我提供的PC端服务器,不保证使用其它PC端服务器能实现收发。上图二中的服务程序是在模拟机测试时用的,在真机测试时用不了(好像是我的电脑在内网,它只能读出内网地址的原因)。
如果