iteye_14354 2010-01-21 10:55
浏览 138
已采纳

我想问一下关于移动qq通讯部分是怎么实现的?

我本身是做短信的,接触网络通讯,最近闲下来,想自己写个类似移动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直连?谢谢各位!

  • 写回答

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描述>,虽然不是专讲无线通讯的,但是网络里的好多基本原理都是一样的。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
  • ¥15 对于相关问题的求解与代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 信号傅里叶变换在matlab上遇到的小问题请求帮助
  • ¥15 保护模式-系统加载-段寄存器
  • ¥15 电脑桌面设定一个区域禁止鼠标操作
  • ¥15 求NPF226060磁芯的详细资料