当前位置:编程学习 > wap >>

android 3G TCP通信问题

android客户端通过3G网络建立TCP连接于公网上的PC服务器通信,
TCP连接可以建立,而且公网服务器可以收到android手机发来的消息,但手机却无法接收到服务器得返回信息。
相同代码在wifi子网条件下测试无bug。
求大神指点,谢谢! android 通信 服务器 手机 3g --------------------编程问答-------------------- 除 --------------------编程问答-------------------- 问题出在建立TCP链接的时候吧?
手机上网的IP随时在变的,所以在建立TCP链接的时候,服务器从那个IP和端口收到了请求,就用哪个IP和端口来建立链接,不要把IP和端口写死。
有必要的话,手机要发送心跳包给服务器,让服务器知道自己的IP和端口。 --------------------编程问答--------------------
引用 2 楼 tantahe 的回复:
问题出在建立TCP链接的时候吧?
手机上网的IP随时在变的,所以在建立TCP链接的时候,服务器从那个IP和端口收到了请求,就用哪个IP和端口来建立链接,不要把IP和端口写死。
有必要的话,手机要发送心跳包给服务器,让服务器知道自己的IP和端口。


不是的,TCP连接已经建立了,且手机端给服务器发了消息,服务器也收到了,然后服务器立刻给手机端回发一条消息,但手机端却没收到。因为是tcp连接,所以服务端直接用接收信息的socket的给手机回发,不涉及到IP和端口写死的问题。 --------------------编程问答--------------------
引用 3 楼 Dr_FIA 的回复:
Quote: 引用 2 楼 tantahe 的回复:

问题出在建立TCP链接的时候吧?
手机上网的IP随时在变的,所以在建立TCP链接的时候,服务器从那个IP和端口收到了请求,就用哪个IP和端口来建立链接,不要把IP和端口写死。
有必要的话,手机要发送心跳包给服务器,让服务器知道自己的IP和端口。


不是的,TCP连接已经建立了,且手机端给服务器发了消息,服务器也收到了,然后服务器立刻给手机端回发一条消息,但手机端却没收到。因为是tcp连接,所以服务端直接用接收信息的socket的给手机回发,不涉及到IP和端口写死的问题。

那确实不是我说的那种情况。
UDP收不到还说的过去,TCP应该都能收到的。 --------------------编程问答-------------------- 除 --------------------编程问答-------------------- 可能要贴相关的代码才能看得出。。。
对了,我现在wifi局域网下能通信,你是怎么实现在公网下通信的?
你现在的实现方式,是不是只要有网络,就能通信的?
不管两端是不是同一个网段,就是不在同一个局域网也能通信?

我现在就是不知道怎么在公网上通信,指点我一下,虽然你是来求助的。。。 --------------------编程问答-------------------- 除 --------------------编程问答--------------------
引用 6 楼 mimixi666 的回复:
可能要贴相关的代码才能看得出。。。
对了,我现在wifi局域网下能通信,你是怎么实现在公网下通信的?
你现在的实现方式,是不是只要有网络,就能通信的?
不管两端是不是同一个网段,就是不在同一个局域网也能通信?

我现在就是不知道怎么在公网上通信,指点我一下,虽然你是来求助的。。。


我的服务器不在局域网内,有公网IP的,所以客户机在哪都能访问到。。。 --------------------编程问答--------------------
引用 8 楼 Dr_FIA 的回复:
Quote: 引用 6 楼 mimixi666 的回复:

可能要贴相关的代码才能看得出。。。
对了,我现在wifi局域网下能通信,你是怎么实现在公网下通信的?
你现在的实现方式,是不是只要有网络,就能通信的?
不管两端是不是同一个网段,就是不在同一个局域网也能通信?

我现在就是不知道怎么在公网上通信,指点我一下,虽然你是来求助的。。。


我的服务器不在局域网内,有公网IP的,所以客户机在哪都能访问到。。。

哦哦哦,这样子啊,谢谢。。。 --------------------编程问答-------------------- 使用移动的3G卡TD-SCDMA就没有问题,联通的WCDMA就不行,服务器发信息给手机就是发不过去!? --------------------编程问答-------------------- 奇怪的问题,坐等答案 --------------------编程问答-------------------- 等答案,没遇到过 --------------------编程问答-------------------- 这是wireshark的抓包截图,其中59.72.109.113是公网服务器,221那个是WCDMA手机。求帮助!

--------------------编程问答-------------------- 不知道楼主问题解决没有,是不是涉及网络穿透的问题? --------------------编程问答-------------------- 我刚刚遇到过并且已经解决。网络穿透的问题。
可参看我的帖子 
http://bbs.csdn.net/topics/390645371?page=1#post-396249235
检查下你的服务器域名映射实现吧,或者换用直接访问服务器IP试试
补充:移动开发 ,  Android
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,