`
lzj0470
  • 浏览: 1272644 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

QQ是怎么实现通讯的

阅读更多
Q:我们上网一般使用的内网的IP地址,没有外网固IP,而UDP通信是需要IP地址的,那么既然不知道对方的IP地址,QQ是怎么实现两个点之间的通信的呢?
A:
这个我最熟悉啦·UDP通信需要2个条件, 对方机器的IP地址,和接受消息的端口号.
QQ 是怎么做到的呢? 其实很简单,我们下载的都是 QQ客户端, 腾讯保留着QQ服务端。并且这个服务端是24小时开启的,
那么我们好友之间是如何通信的呢?
这就要讲到QQ的通信模式了。

第一点:腾讯的QQ服务端必须开启,且服务器的IP地址是固定的,有固定的端口号接受客户端发送的消息。
第二点:客服端登录时,将自己的IP 和端口 发送给服务端,服务端记录,并将该IP和端口号发送给你所有的好友,群发消息告诉他们你已经上线。
第三点:好友间的聊天,其实这个就是点对点的了,不再通过服务器了。因为在步骤2 服务器已经将你的ip和端口发送给了你的好友,那么你的好友可以直接将消息发送到你的电脑。
第四点:如何知道好友已经离线呢?这是比较关键的,因为QQ使用的是UDP协议,UDP我们知道是不可靠连接,即只管发送消息,不管能否收到。
那么对方怎么知道你下线呢?在你下线时,会发送消息给服务器,服务器将会从上线列表里去除你的ID,并且群发消息告知你的好友。
分享到:
评论
1 楼 bookyellow 2011-12-08  

本人JAVA新手,正缺少这方面思路,谢谢讲解了

相关推荐

    web即时通讯(HTML5和java模仿QQ 实现即时通讯)

    HTML5和java模仿QQ 实现即时通讯

    androidQQ源码 模仿手机QQ实现QQ通讯协议

    在Android平台上,模仿手机QQ实现QQ通信协议是一个复杂的任务,涉及到网络编程、数据解析、UI设计等多个技术领域。本文将围绕这个主题,深入探讨如何通过源码分析与实践,掌握QQ通信协议的关键技术和实现步骤。 ...

    基于Java的仿QQ源码即时通讯工具设计与实现:含详细文档与毕业案例设计.rar

    基于Java的仿QQ源码即时通讯工具设计与实现:含详细文档与毕业案例设计.rar 基于Java的仿QQ源码即时通讯工具设计与实现:含详细文档与毕业案例设计.rar 基于Java的仿QQ源码即时通讯工具设计与实现:含详细文档与毕业...

    Java实现QQ即时通讯软件

    在Java编程领域,实现QQ即时通讯软件是一项挑战性的工作,涉及到网络编程、多线程、数据传输、用户界面设计等多个核心知识点。以下是基于这个主题的详细解析: 1. **Java Socket编程**:Java中的Socket是网络通信的...

    类似qq的通讯软件-客户端

    类似qq的通讯软件,由C#实现,实现了自由设置服务器并生成对应的客户端。 本文件是客户端程序的C#工程。由于文件较多较大,欲下载服务器端,请下载本人的《类似qq的通讯软件-服务器端》资源。 文档为rar压缩包,内涵...

    通讯软件的设计类似QQ

    【QQ的主要功能实现】 1. **即时消息**:QQ的即时消息功能允许用户发送文本、表情、图片、文件等,同时支持群聊功能,多人同时在线交流。 2. **语音与视频通话**:QQ提供了高质量的语音通话和视频通话服务,支持一...

    类QQ实现代码(即时通讯)

    P2P即时通讯源码(DELPHI编写),无加密,组件齐全,调试非常简单方便! 发送联机或脱机消息,同时可自定义消息字体、颜色、大小等信息,支持插入表情符号,屏幕截取。 支持多人消息群发等功能;在线即时语音、视频...

    c# 实现穿越防火墙udp打洞(仿qq即时通讯)

    C# UDP穿越NAT打洞,可在广域网实现仿qq即时通讯,点对点发送消息。

    Qt实现的类似QQ的即时通讯软件

    本项目基于Qt框架实现了一个类似QQ的即时通讯软件,让我们深入探讨一下这个项目中涉及的关键技术与知识点。 首先,Qt是一个跨平台的C++图形用户界面应用程序开发框架,由Qt Company提供支持。它提供了丰富的API,...

    仿QQ即时通讯软件2023最新版+MySQL+JAVA

    仿QQ即时通讯软件项目主要是综合应用java基础知识,集合运用,DAO数据库技术,MySQL数据库技术,多线程技术,IO流技术,socket网络通讯技术,Swing界面编程技术等,该项目的主要功能如下: 1.实现用户注册及修改功能...

    java仿QQ功能实现

    Java仿QQ功能实现是一个项目,旨在使用Java编程语言来创建一个类似于腾讯QQ的应用程序,它包含聊天、添加好友和用户注册等核心功能。这个项目主要关注于后端逻辑的实现,以及可能涉及到的数据库交互。以下是一些关键...

    vc++ 即时通讯 qq

    QQ作为一款全球知名的即时通讯软件,其背后的技术实现值得深入研究。本资料包聚焦于使用VC++这一经典编程语言来实现即时通讯功能,特别是与QQ相关的技术点。以下是关于VC++即时通讯QQ的详细知识点: 1. **TCP/IP...

    QQ即时通讯项目

    QQ即时通讯项目是一个基于Java语言实现的模仿QQ的通信系统,旨在提供类似QQ的聊天功能。这个项目不仅包含了源代码,还附带了详细的文档,以及可直接运行的可执行文件,使得用户能够快速理解和学习如何构建一个即时...

    即时通讯python仿QQ基本功能

    本项目“即时通讯python仿QQ基本功能”旨在利用Python的Qt5库构建一个类似QQ的桌面聊天软件。 Qt5是Qt库的一个版本,它是一个跨平台的C++图形用户界面应用程序框架,提供了丰富的UI设计和事件处理能力。在Python中...

    【QQ案例】高仿QQ2013局域通讯版.rar

    QQ案例中的“高仿QQ2013局域通讯版”是一个基于C#编程语言开发的应用程序,旨在模仿QQ2013的用户界面和基本通信功能,但可能不包括完整的腾讯QQ服务。这个项目可能是为了教学、学习或个人娱乐目的,让开发者能够了解...

    仿QQ开发的即时通讯软件

    在"仿QQ开发的即时通讯软件"项目中,我们主要关注的是文本聊天功能,这涉及到一系列的技术点。 1. **Java语言基础**:Java是该项目的主要开发语言,它具有跨平台、面向对象和安全性高等特点,适合开发大型、复杂的...

    仿QQ,实现了即时通讯,消息队列,可供参考

    标题中的“仿QQ,实现了即时通讯,消息队列,可供参考”表明这是一个使用Winform技术构建的即时通讯软件项目,其设计灵感来源于QQ,并且它包含了一个消息队列的实现。这个项目可能作为学习和参考的示例,帮助开发者...

    简单QQ通讯软件的实现程序

    在本项目中,"简单QQ通讯软件的实现程序" 是一个使用C++编程语言开发的即时通讯应用。这个软件的设计灵感来源于腾讯的QQ,旨在提供基本的聊天功能,包括客户端和服务器端之间的通信。让我们深入探讨一下这个项目涉及...

    qq微信即时通讯

    QQ和微信作为中国最流行的两款即时通讯应用,其背后的技术架构和实现原理值得深入探讨。 1. **即时通讯系统架构** 即时通讯系统的架构通常包括客户端(Client)、服务端(Server)和消息中间件(Message Broker)...

Global site tag (gtag.js) - Google Analytics