`
zpball
  • 浏览: 898219 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

腾讯QQ是用什么语言写的?

阅读更多
腾讯QQ的开发分客户端软件和服务器端软件两部分。

客户端采用 Microsoft Visual C++开发;
服务器端软件采用Linux gcc开发 ;
数据库采用MySql 数据库。

腾讯QQ采用标准的TCP/IP协议为通信协议。

  TCP/IP协议中又分为TCP协议和UDP协议,TCP协议是面向连接的协议,它比较安全、稳定,但是效率不高,占用资源较多。UDP协议是无连接方式的协议,它的效率高,速度快,占资源少,但是其传输机制为不可靠传送,必须依靠辅助的算法来完成传输控制。QQ采用的通信协议以UDP为主,辅以TCP协议。由于QQ的服务器设计容量是海量级的应用,一台服务器要同时容纳十几万的并发连接,因此服务器端只有采用UDP协议与客户端进行通讯才能保证这种超大规模的服务。

  腾讯QQ客户端之间的消息传送也采用了UDP模式,这不同于国外的ICQ在客户端之间采用TCP进行通讯的模式。因为国内的网络环境非常复杂,而且很多用户采用的方式是通过代理服务器共享一条线路上网的方式,在这些复杂的情况下,客户端之间能彼此建立起来TCP连接的概率较小,严重影响传送信息的效率。而UDP包能够穿透大部分的代理服务器,因此我们在开发QQ的时候选择了UDP作为客户之间的主要通信协议,因此网友会觉得用QQ传送信息要比ICQ及其它采用TCP协议的ICQ类软件快。当然,UDP协议优点突出,缺点也很明显:UDP包的传送是不可靠的传输,它不象TCP一样有包重传等机制,因此采用UDP协议的信息在传送过程中很容易丢失,这样就需要辅助的算法实现包重传机制以保证信息不会丢失,而QQ服务器的负荷非常重,因此在QQ 99b 0425之前我们只是在客户端到客户端之间传送消息时采用了这个辅助的机制,当消息在客户间直接传送无法到达时就需要通过服务器来中转,由于服务器端在老版本的时候迫于负荷过重的压力没有对主动发往客户端的信息进行传输控制,因此在老版本的时候容易造成通过服务器中转的信息丢失的现象。在QQ99c 0725之后我们单独设立出了几台专用的服务器采用包重传机制来中转消息(仅限于99c之间传递的消息),确保通过服务器转发的消息也能够发送到对方的QQ。
分享到:
评论
1 楼 hzaccp 2011-12-12  
哪里来的资料?

相关推荐

    用JAVA语言编写的腾讯QQ

    本软件是用JAVA语言编写的腾讯QQ,是本人在实训期间完成的人物之一,包含完整的MYSQL数据库和JAVA代码,具有登陆界面,打开聊天界面,开启QQ服务,进行聊天等功能设计,适合有一定JAVA基础的人员学习所用。

    e语言-完全模仿腾讯QQ界面源代码

    完全模仿腾讯QQ完全模仿腾讯QQ界面,包括隐藏界面!

    js 腾讯QQ和淘宝旺旺在线客服代码

    js 腾讯QQ和淘宝旺旺在线客服代码

    QT学习的案例:简化版腾讯QQ,采用UDP实现群聊功能

    很适合初学者,涉及基础知识点较多

    e语言-QQ邮箱发信易语言

    源码调用了精易模块5.82.ec,乐易V8.ec,鱼刺HTTP模块,实现了QQ邮箱登陆,发送邮件,提交验证码等。

    java语言编写的QQ这是一个聊天工具,可以用自己的qq和好友进行聊天

    这是一个聊天工具,可以用自己的qq和好友进行聊天 可以让你不用去登陆腾讯QQ就可以聊天 还有源代码和实现思路

    QQ客户端全源码(使用腾讯W.QQ协议)

    快手W.QQ2012,采用腾讯QQ之w.qq.com协议(手机网页版)。 【目的】 1、第一次尝试Web UI开发应用 2、进阶学习快手 3、制作QQ机器人,应用于PHP或者直接数据库交互 【分享包】 1、快手项目包(aau、htm、js...

    易语言源码完全模仿腾讯QQ.rar

    易语言编程源码,大家可以参考学习

    e语言-腾讯微博批量广播

    易语言腾讯微博批量广播源码例程程序结合易语言扩展界面支持库和多线程支持库,调用易语言模块和API函数实现腾讯微博批量广播。点评:易语言腾讯微博批量广播源码是易语言QQ应用例程。

    腾讯开源的分布式毫秒服务引擎 msec.zip

     毫秒服务引擎的创作冲动和构建经验,来自QQ后台团队超过10年的运营思考。它是一整套解决方案,但也可以拆分的来使用其中的监控、key-value存储单品。 应用场景web console:整个系统的运营管理中心。 主要...

    基于Android的低仿腾讯手机QQ设计源码

    本项目是基于Android的低仿腾讯手机QQ设计源码,包含270个文件...系统采用了Android和Java编程语言,实现了低仿腾讯手机QQ的功能,包括聊天界面、好友列表、消息发送等。项目结构清晰,代码可读性强,易于理解和维护。

    腾讯智影登场!微信、QQ将集成GPT功能,视频创作更智能化!

    此外,据悉微信、QQ等产品也有望集成GPT功能,这意味着未来我们将能够在社交软件上使用更加智能化的语言生成功能。 腾讯智影的发布对于视频制作领域无疑是一次革命性的尝试。在传统的视频制作方式中,制作者需要在...

    C#高仿QQ2014

    C#语言编写高仿腾讯QQ2014,里面提供了QQ开发的所有控件。

    php 腾讯企业邮箱发送邮件

    php用腾讯企业邮箱发送邮件,简易易懂,只需将配置信息修改成自己的即可使用,配置超简单,只要会基础的php语言,懂点逻辑都知道

    源码-腾讯RPC框架

    tars协议采用接口描述语言(Interface description language,缩写IDL)来实现,它是一种二进制、可扩展、代码自动生成、支持多平台的协议,使得在不同平台上运行的对象和用不同语言编写的程序可以用PRC远程调用的...

    腾讯:正在研发类ChatGPT聊天机器人,同时面向C端和B端

    该聊天机器人将集成到QQ、微信,同时也会通过腾讯云向B端用户服务。当天,腾讯还正式发布了全新的AI智能创作助手“腾讯智影”,包括智影数字人等AI创作工具。 此前有媒体报道,腾讯类ChatGPT对话式产品项目组——...

    《QQ聊天系统》毕业设计说明书

    目前网络通讯是计算机用户进行交流最普遍的方式,各种各样基于网络的应用也随之诞生,比如“腾讯QQ”——一款基于Internet的即时通信(IM)软件,它使人们能随时在网上与其他用户交换消息,为网络用户提供一个即时...

    基于javaEE的qq项目

    qq项目是java语言模仿腾讯qq做的一个项目,可以很好地巩固javaEE的基础知识。但是因为文件限制大小,所以声音、图片没有,只有核心代码和包

    基于Java即时聊天系统的设计与实现毕业论文.pdf

    有Netmeeting、腾讯QQ、MSN-Messager等等。该系统开发主要包括一个网络聊天服务器程序和一个网络聊天客户程序两个方面。前者通过Socket套接字建立服务器,服务器能读取、转发客户端发来信息,并能刷新用户列表。后者...

Global site tag (gtag.js) - Google Analytics