`

山寨版QQ-开发纪实

阅读更多

先上几张图吧:

  启动时:

 

启动后

 

聊天中:

 

传文件

 

第一版:客户端以事件模型实现UI与通信分离;服务器端使用阻塞IO+对象数据库;

第二版:服务器端使用Mina框架NIO模型+缓冲队列+异步多线程消息处理提高消息收发性能;

自定定原始字节通信协议,实现QQ基本消息格式(登陆,加好友,文件传送....)

用户Q号和密码md5传送;聊天消息以用登陆后收到服务器发来的key以des加密.

 

 项目组长胡海亮(QQ:249782944)

 通信协议定义的文档见附件:

  • 大小: 39 KB
  • 大小: 25.6 KB
  • 大小: 56 KB
  • 大小: 48 KB
分享到:
评论
30 楼 一个我看雪 2009-12-20  
应该都是要swing做的吧~
29 楼 chendw_hz 2009-12-17  
这个应该是swing做的吧 还是flex LZ能否说一下说用的相关技术
28 楼 javafound 2009-11-16  

msgHead: |4byte(包总长)|4byte(序号)|1byte(包类型)|4byte(目标Q)|4byte(接收Q)
+
file msgBody:|1byte(文件包总数)|1byte(文件包序号)|20byte(文件名)|N byte(文件数据)
27 楼 i2534 2009-11-16  
不知道LZ是怎么实现mina的文件传输的,请不吝赐教。
26 楼 finding006 2009-11-14  
这里发帖也太严了吧,顶贴也不行
发点有技术含量。这个我也做过,美化没楼主的好…………
25 楼 ivywjhua 2009-11-13  
"第二版:服务器端使用Mina框架NIO模型+缓冲队列+异步多线程消息处理提高消息收发性能;"

异步多线程 是什么意思啊?
24 楼 LK.Bing 2009-11-13  
苍天啊,大地啊,我什么时候能达到这种水平啊?
23 楼 lirong1978 2009-11-13  
  现在的牛人真多
22 楼 qiangailei 2009-10-31  
我们毕业就是做这样一个山寨qq 呵呵
21 楼 sosyi 2009-10-18  
不错。。
20 楼 xici_magic 2009-10-18  
嗯  看上去真的很山寨啊  要是能把源码弄出来大家一块看看就好了 
19 楼 houzhaowei 2009-09-07  
我以前也做过个,貌似比这个界面好看多了,完全仿真的
18 楼 jakewow 2009-09-06  
hailiang0901 写道
Hooopo 写道
楼主是湖大的?


中南大学的 qq;249782944

跟楼主一样是中南大学的,学习了楼主的使用jFreeChart实现web实时设备状态的图形化监控,受益匪浅。谢谢楼主
17 楼 markwang 2009-07-22  
不错啊,呵呵
16 楼 javafound 2009-06-19  
不基于UDP 就没有技术含量 :
  这确实,UDP丢包率较高,如果用UDP,理论上,我们得自己实现TCP的差错重传控制.很有难度,这个.

至于xmpp :
这个是开放的基于xml的协议,jabber上有N多客户端api(如spark)可以下用.我们连代码都不用写了,自定义是为了好玩,通信的核心就是协议。

支持QQ协议吗?:
  这个有试过,一帮子学生用抓包工具分析了一个月QQ通信时的字节码,屁规则都没找出,十分的邪门,就做罢了。期待有luma朗玛QQ第二出现。

P2P这块:
只装了个limewire(http://www.limewire.com/)试了下,jxta也一直没闹懂,望有高手demo下。

还有就是如何识别出内网中的一台机器:
  这个简单,组播一下就成了,参看一个基于JGroups的虚拟教室项目(http://www.iteye.com/topic/402068)



15 楼 shansun123 2009-06-19  
myreligion 写道
支持QQ协议吗?

这个问题问的。。。要是支持QQ协议的话腾讯就甭混了。。。
建议LZ看看XMPP协议,就不用自己再花时间去定义这么一套通讯协议了。
14 楼 dch1287 2009-06-04  
果然很山寨
13 楼 CoxZhang 2009-06-04  
LZ的思路是用服务器转发的,如果再深入一下,可以考虑下以P2P的方式,服务器只维持在线用户列表和状态。实际的通讯,文件的发送等都是以P2P的方式进行。

这个比较有深度,以前研究过一段时间。重点是客户端之间的握手,还有就是如何识别出内网中的一台机器。。。

时间长了都忘了,LZ加油,这个如果鼓捣出来了,JAVA网络这块基本就可以说熟了。
12 楼 fjlyxx 2009-06-04  
LZ有兴趣可以瞧瞧飞鸽的实现原理. 客户端监听要考虑外网能否访问到客户端的问题.如果是长连接那么你定义的这种数据包不怎么适合.就是勉强可以 客户端和服务端的数据包解析工作将异常麻烦(长连接的数据包必须全收或者全不收 不然会影响系统稳定性).
11 楼 myreligion 2009-06-03  
支持QQ协议吗?

相关推荐

    山寨版QQ--存Java实现!!

    总的来说,JavaQQ项目展示了Java在开发桌面应用程序上的强大能力,特别是对于模仿复杂社交应用的功能实现。通过这个项目,开发者不仅可以学习到Java的基础知识,还能掌握到如何利用Java进行用户界面设计、数据库操作...

    山寨版QQ-韩顺平循序渐进学Java

    《山寨版QQ——韩顺平循序渐进学Java》是一个基于韩顺平老师的Java教学视频创作的项目,旨在帮助学习者深入理解Java编程语言,尤其是网络编程和GUI设计方面。这个项目分为两大部分:QQ客户端和服务器端,涵盖了基础...

    山寨版QQ 源代码 QQ2010界面

    标题中的“山寨版QQ 源代码 QQ2010界面”指的是一个非官方的、模仿QQ2010版本用户界面的软件项目,它的源代码是使用Java编程语言编写的。这个项目可能是为了教学目的,如描述中提到的“韩顺平JAVA教程视频配套源代码...

    山寨版qq源码+素材

    山寨版qq源码+素材 山寨版qq源码+素材 IM即时通信 山寨版qq源码+素材 可以自己分析,对于java学习比较好的哈!

    山寨版QQ源代码

    总之,开发一个像“山寨版QQ”这样的项目涵盖了广泛的IT知识领域,从网络编程到用户体验设计,再到系统架构和安全性,都需要开发者具备扎实的技术基础和实践经验。同时,这个项目也提供了一个学习和实践多种技术的好...

    java语言 山寨版QQ源码

    【标题】:“java语言 山寨版QQ源码”指的是基于Java编程语言实现的一个简易QQ聊天软件的源代码。这个项目通常是为了教学目的而设计,让学习者能够深入理解Java编程语言在网络通信、多线程、图形用户界面(GUI)等...

    仿QQ-----开发工具vs2005-

    【标题】:“仿QQ-----开发工具vs2005-” 指的是一个使用C#编程语言在Visual Studio 2005环境下开发的桌面应用程序,它的目标是模仿腾讯QQ的用户界面和功能,为初学者提供了一个学习客户端软件开发的实践项目。...

    山寨版qq源码.素材

    QQ是中国知名的即时通讯软件,由腾讯公司开发,其源代码是商业机密,不对外公开。然而,"山寨版qq源码.素材"这个主题暗示我们可能会探讨的是一个非官方的、模仿QQ功能的软件源码及相关的素材。在IT行业中,这样的...

    java山寨版qq项目

    【Java山寨版QQ项目】是韩顺平老师为了教学目的设计的一个模拟QQ功能的应用程序,旨在帮助初学者理解和掌握Java编程语言以及相关的软件开发技术。这个项目提供了从基础到进阶的Java编程实践,涵盖了网络通信、多线程...

    山寨版QQ,聊天通信

    "山寨版QQ"通常是指非官方、模仿QQ功能的软件,它们可能由Java爱好者开发,旨在提供类似QQ的聊天通信服务。下面将详细讨论相关知识点: 1. **Java编程语言**:Java是一种广泛使用的跨平台编程语言,适合开发桌面...

    山寨版qq源码+素材,采用javaee开发

    ③给出的源码并没有实现山寨qq全部功能,这个在视频教程中已经提到了,其余功能大家完全可以在学习完视频教程后,自行完成。 ④该项目没有使用到数据库. ⑤关于qq的在线添加用户、离线留言、在线传递文件、视频聊天...

    韩顺平山寨版QQ源码素材[评价可免费]

    首先是关于[评价可免费]的严正声明 一、评价=评论加评价(评星星) 二、评价必须是下载完了该资源后的评价,没下载评价无效 三、如果正确评价了,返还积分可能需要等一会,因为系统需要反应。 评论时记得要评分。...

    山寨版qq源码

    【标题】"山寨版qq源码"所涉及的知识点主要集中在客户端与服务器端的软件开发领域,这通常指的是创建一个类似QQ的即时通讯应用。这个项目可能是为了教学目的,由知名IT讲师韩顺平老师设计并讲解,让我们来详细探讨...

    完整版山寨版QQ

    基本实现了QQ常用的所有功能,用户注册,登录,私聊,群聊,窗口抖动,加好友,截图,改变字体,改变聊天窗口背景等,值得借鉴,不足地方还望大家指正。(注:数据库为mysql,用其他的数据库可以自己改动)

    山寨版qq源码+素材(毕业设计)

    这个"山寨版qq源码+素材"的压缩包文件提供了模拟QQ功能的基础框架,特别适合计算机科学与技术专业的学生作为毕业设计项目使用。下面我们将深入探讨其中可能包含的关键知识点: 1. **网络编程**:源码中必定包含了...

    简单山寨版QQ

    "简单山寨版QQ"是一个基于Java编程语言的项目,旨在为初学者提供一个学习和实践的基础平台,了解和掌握Java的一些核心概念和技术。这个项目主要涉及到以下几个关键知识点: 1. **Java基础知识**:Java是一种广泛...

Global site tag (gtag.js) - Google Analytics