真机与PC通过USB进行UDP通信时发生异常

white19871115 2011-09-08 12:18:05
本人初学Android,想用PC端做Server,Android手机做Client进行UDP通信。在模拟器环境下已经实现该功能,运行正常。但将apk安装到真机,就跑不起来了,手机一开始发送数据包就发生异常。由于模拟器上一期正常,不知道这个异常发生在什么位置,也就没能获取是什么异常。有人遇到过这样的问题吗?

PS:Android端有Internet权限,已经在PC端进行了端口重定向“adb forward tcp:5556 tcp:5555”。在模拟器上用ip地址10.0.2.2或者本机ip 192.168.2.101都运行正常,一旦挪到真机上就不行了。。。
...全文
704 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
NEC_xhf 2012-07-17
  • 打赏
  • 举报
回复
http://blog.csdn.net/nec_xhf/article/details/7592326 这个可以实现
lenomon 2012-03-12
  • 打赏
  • 举报
回复
man9527 2011-12-28
  • 打赏
  • 举报
回复
其实是有方法的,我这是这么解决的
1,你要有无线路由
2,手机利用wifi连接无线路由
3,电脑连上路由
4,android程序UPD到service的时候就用电脑在路由中的地址(192.168.1.X)
因为你电脑和手机在一个网段,所以手机是可以找到电脑的
white19871115 2011-09-16
  • 打赏
  • 举报
回复
额 这么久了没人继续讨论,那就这样吧。结贴~ 感谢楼上各位大大~
white19871115 2011-09-13
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 yiyaaixuexi 的回复:]
引用 5 楼 lizhengjun2010 的回复:

真机通过USB通信,pc和手机ip地址都用127.0.0.1


嗯5L说的 没有问题
[/Quote]

求大侠解惑啊~~~ 问题见楼上~
white19871115 2011-09-13
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 lizhengjun2010 的回复:]
真机通过USB通信,pc和手机ip地址都用127.0.0.1
[/Quote]

课多啊。。。终于抽时间又搞了搞。

按这位大哥给的说法实现了一种通信方式,即PC端作为Client,手机端作为Server,使用TCP协议实现了通过USB的通信。但是其他几种方式都没能实现。下面一一列举各种情况:
1、PC端作为Server,手机端作为Client,使用UDP协议,PC端Server侦听本地端口5556运行正常,手机端一直显示异常ConnectException: /127.0.0.1:5556 - Connection refused,无法建立连接;
2、PC端作为Server,手机端作为Client,使用TCP协议,PC端的Server程序都无法正常运行,显示异常“一个套接字通常只能绑定一次”,即无法侦听用于重定向的本地端口5556;
3、PC端作为Client,手机端作为Server,使用TCP协议,PC端Client主动连接重定向端口5556,手机端侦听端口5555,建立连接后反向传递数据,已经成功;
4、PC端作为Client,手机端作为Server,使用UDP协议,没有实现,因为我的目标是要实现PC获取手机传输的信号,PC做Client进行无连接访问手机无法反向传输数据。

综合上述四种情况,我总结出新的问题和心得=。=
“adb forward tcp:5556 tcp:5555”指令将本地端口5556重定向到手机,在PC本地该端口就不能再被socket绑定侦听了,原理使然,需要PC端去连接该重定向的端口,那么PC端使用TCP连接就必然不能成为Server。那么针对情况一,使用UDP侦听该端口时系统没有报异常,那是不是真正有效的侦听了该端口呢?这个一个问题。感觉上是没有。
另外,如果要让PC端获取手机端发送的数据,必须让手机端建立连接方向发送数据,这么一来就不能用PC做Client使用UDP向手机发起请求。加上上面的问题,这么一来感觉UDP协议几乎就不能用在PC和手机通信的过程中了。到底能不能用啊?貌似在网上看到过有人说成功实现过UDP通信的,不知道怎么实现的。

做了不少实验,有上述两个疑问,求指教~~~~~
jeky_zhang2013 2011-09-12
  • 打赏
  • 举报
回复
有机会好好试下~~
white19871115 2011-09-12
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 lizhengjun2010 的回复:]
真机通过USB通信,pc和手机ip地址都用127.0.0.1
[/Quote]

这位大哥,我尝试了使用上述IP,但还是没有成功。手机作为客户端确实在发送数据包,但PC段没有收到数据。貌似是手机向127.0.0.1发送数据就是在给自己发送数据,而没有向PC发送。
两端都是127.0.0.1的话,客户端和服务端如何定位对方的地址呢?
念茜 2011-09-12
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 lizhengjun2010 的回复:]

真机通过USB通信,pc和手机ip地址都用127.0.0.1
[/Quote]

嗯5L说的 没有问题
lizhengjun2010 2011-09-12
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 white19871115 的回复:]
引用 5 楼 lizhengjun2010 的回复:
真机通过USB通信,pc和手机ip地址都用127.0.0.1


这位大哥,我尝试了使用上述IP,但还是没有成功。手机作为客户端确实在发送数据包,但PC段没有收到数据。貌似是手机向127.0.0.1发送数据就是在给自己发送数据,而没有向PC发送。
两端都是127.0.0.1的话,客户端和服务端如何定位对方的地址呢?
[/Quote]

这要通过端口识别!真机做服务器 IP用127.0.0.1,端口任意!
PC上IP也用127.0.0.1,通过adb forward 重定向到该端口,即可通信
lizhengjun2010 2011-09-09
  • 打赏
  • 举报
回复
真机通过USB通信,pc和手机ip地址都用127.0.0.1
white19871115 2011-09-09
  • 打赏
  • 举报
回复
就没人回答了么。。。
white19871115 2011-09-08
  • 打赏
  • 举报
回复
不要沉了啊。。。
white19871115 2011-09-08
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 ultrapro 的回复:]
通过USB浏览器能上网么?
[/Quote]

不是,就是让手机通过USB链接,使用UDP协议向PC段发送数据。
求高人指点啊!!!
儿大不由爷 2011-09-08
  • 打赏
  • 举报
回复
通过USB浏览器能上网么?

80,351

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧