我本身是做短信的,接触网络通讯,最近闲下来,想自己写个类似移动qq的东西,但在构思中遇到了问题。本身是想通过gprs联接自己的server但有以下几个问题
1.j2me是否支持通过gprs直接进行socket通讯? 我查了查貌似支持只不过socket貌似j2me有一套专用的socket,和之前做的j2se的socket有区别
2.server如何向已经连接的gprs手机终端发送数据?我在网上查了下,貌似gprs联接后所分配的ip地址是移动或联通内部的地址,而server接收到的地址也只是移动或联通的网关地址。那我server有公网地址,grps可以通过socket联接上,如果我的server要回复消息时怎么办?怎么路由到这个内部ip地址?
3.如果使用wifi进行连接后传送像server传送数据,我server怎么回传数据给通过wifi联接上网的手机????
4.移动qq是怎么解决这些问题的?我网上查说移动qq使用udp直连?谢谢各位!
我想问一下关于移动qq通讯部分是怎么实现的?
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
1条回答 默认 最新
- q3005218046 2010-01-21 17:13关注
我很久没做网络部分了,只能提供点思路。
1.闭着眼睛都知道有支持的SOCKET。他和J2SE的SOCKET区别在于底层通讯方式不同。一个是无线网络,一个是有线网络,当然不一样。2.sever如果只能接收到网关的地址,那说明还得通过其他信息(除了IP)来判断客户端手机。就像在Internet下的端口映射机制,是靠IP+端口号来确定虚拟子网的主机的。所以应该有类似端口号的东西辅助判断。不过作为SERVER,是不需要知道子网内手机真实的IP的,这是一个你不用关心的黑盒子。
3.和问题2类似,你虽然实际和用WIFI连接的手机通讯,但是你看起来其实就是和无线接入点通讯一样。这是由内部机制来保证完成的,对你是无需可见的。如果想知道AP怎么和这些手机通讯,可以查IEEE下802.11.a/b/g协议细节,但这不属于应用层关心的范围。
4.我想应该不能叫UDP(个人猜测,如果他真这么叫,我也无语),这专有名词不是随便篡改用的。不过应该是提供的服务类似,不保证可靠数据传输。
总结一下啊,LZ应该是对网络分层没有概念,网络基础学得不好。比如用电脑编应用程序,你不需要了解底层如何实现一样能编,因为他们提供了黑盒子服务。建议看下网络分层的基本概念,推荐一本书<自顶向下的INTERNET描述>,虽然不是专讲无线通讯的,但是网络里的好多基本原理都是一样的。
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报