安卓真机上UDP程序收不到PC机数据包的解决方法

在安卓真机上进行UDP通信时遇到只能发送无法接收PC机数据的问题。解决方案包括保持一个socket用于收发,避免在连接期间重复新建或关闭相同端口的socket,确保PC端服务程序能解析IP和端口。同时,PC端服务器必须能够正确解析数据包。遵循这些关键点,可以在真机上实现UDP通信。
摘要由CSDN通过智能技术生成

     最近在写安卓UDP通信程序时遇到这个问题,就是在安卓模拟器上可以实现收发,但是放到真机上就只能发收不到PC机发来的数据在网上查了一些资料,发现有很多朋友也遇到这个问题,都没有非常明确的解决方法,我经过尝试终于在真机上收到了PC机发的数据,跟大家分享一下。我用的是eclipse开发环境,安卓虚拟机为2.2版本。为方便讲解,先贴几张图:

               图一 安卓模拟器界面

                                                                             图二 PC机服务程序界面

    图一为安卓虚拟机上的界面,在真机上除了文字位置有一些错位外其它都一致(偷个懒就不贴真机效果的照片了),远程IP地址是你的PC端服务程序所在PC的公网IP;远程端口是PC服务程序接收端口;本地端口是手机发送数据时用的端口。图二为测试时用的一个PC端服务程序。PC机上的服务程序必须要能解析出包中的IP和端口号,建议用我提供的PC端服务器,不保证使用其它PC端服务器能实现收发。上图二中的服务程序是在模拟机测试时用的,在真机测试时用不了(好像是我的电脑在内网,它只能读出内网地址的原因)。

    如果

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 10
    评论
评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值