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

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

报告相同问题?

悬赏问题

  • ¥15 指定IP电脑的访问设置
  • ¥30 matlab ode45 未发现警告,但是运行出错
  • ¥15 vscode platformio
  • ¥15 代写uni代码,app唤醒
  • ¥15 全志t113i启动qt应用程序提示internal error
  • ¥15 ensp可以看看嘛.
  • ¥80 51单片机C语言代码解决单片机为AT89C52是清翔单片机
  • ¥60 优博讯DT50高通安卓11系统刷完机自动进去fastboot模式
  • ¥15 minist数字识别
  • ¥15 在安装gym库的pygame时遇到问题,不知道如何解决
手机看
程序员都在用的中文IT技术交流社区

程序员都在用的中文IT技术交流社区

专业的中文 IT 技术社区,与千万技术人共成长

专业的中文 IT 技术社区,与千万技术人共成长

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

客服 返回
顶部