既然QQ能仿ICQ, 咱java也来个仿QQ.

在我刚学完java后,就想做点什么项目锻炼下自己的技能。凑巧的是,我一个同样学java的朋友在做一个仿qq的项目,不过他做的实在太丑了。

然后他想让我也一块做这个,我心想,像qq这么高难度的项目肯定复杂得要死,所以我是想都不敢想的。

没想到后来的偶然的一天,我手痒了,想用java做一个简单的聊天室。然后说做就做,着手开干,不一会,凭着对java和通信的有些基础的掌握,写出了一个简陋的聊天室。简陋到粗糙的地步,粗糙到只有聊天的文字一行一行的堆砌在面板上,早期效果截图没保存,不过大家凭着自己的想象力也不难脑补。

后来,我想,要是能给加个气泡就好看多了,于是,开始上网查资料,奈何,资料撩撩几笔,而又残缺不全,只能从有限的资料里找些蛛丝马迹,网上找来的知识零零散散,再凭着自己的理解进行简单拼凑之后,又开始上手开发。
在经过了数个日日夜夜之后,终于搞成了,下面来一张早期的效果图给大家看看:

当然,这个时候还只有一个聊天窗口,登录窗口和主窗口都没有,可以说是简易版的聊天软件了。
在做完这个之后,我成就感爆棚,顿时自己又飘了,想着这个能做完,离qq也不远了,于是开始正式做仿qq项目。

在后来的日子里,我对这个项目进行不断地改进和拓展,终于完成了基础聊天业务,并添加了附加的高级功能。

项目迭代历程大致如下:

  • 聊天文字堆砌
  • 添加气泡,完成简易聊天室
  • 添加登录注册窗口
  • 添加主窗口
  • 通信框架升级
  • 数据库优化升级
  • 添加群聊天
  • 添加群资料
  • 添加远程桌面
  • 添加语音消息
  • 添加音视频通话

下面谈谈令我印象深刻的几段经历,每每回忆起,不胜感动。。。。。。

刻骨铭心回忆录:

  • swing美化:为改变java swing中固有的丑陋界面,又特地上网学习了关于swing的美化,并结合自己 实践不断地改进才得到现在这样比较满意的效果。

  • 通信框架: 从一开始的java序列化到后来为了降低码流而改用netty框架,又进行了一次新的摸索和尝试,又来了一个地毯式的“更新迭代”。

  • 截屏: 为了实现截屏效果,特地从网上找来教程,不过功能很朴素,只提供了基本的截屏功能,作为完美主义的我岂能容忍,于是又是几天的探索才做的功能相对的齐全,又长舒了一口气。

  • 背景修改: 再然后就是对背景的修改,又想能改背景图,又想能改背景色,又要保存背景配置,又经历了一番长久地探索。

  • 群资料: 私聊做完之后做群聊,群聊做完之后又做群资料,其中诸如群首页,群相册,群文件,群成员,群公告这些又是一轮烧脑。

  • 文件发送: 为了降低服务器带宽,提高传输速率,我采用了p2p打洞技术,还是tcp打洞,在众人都说tcp打洞不可能实现的情况下硬是凭着坚韧摸索了出来,想到这里又是一把鼻涕泪。

  • 远程桌面: 从一开始的简单传输指令与图像,到最后的反复测试优化,不断缩减延迟,提升体验,才 达到了与qq远程桌面相接近的远程效果,当然主要得益于算法方面的优化。

  • 视频通话: 从一开始选择JMF框架,再到放弃JMF选择javacv, 再到选择jmf, 再到怀疑jmf, 再到选择jmf框架辅之以udp打洞才突破了技术壁垒。

  • 服务器方面: 从一开始直接实例调用connetion对象,到后来为提升性能改用c3p0数据库缓存池,又是一轮辛苦的“劳动”。

以上每一次都是举步维艰,其中艰辛,不言自明,最后,在经历9个月的探索开发和迭代,才终于完成,实属不易啊。

下面,来几张效果图给大伙看看吧


远程桌面效果图:

视频通话效果图:

然后,懒得码字,也懒得重新做图了,就从其他地方找来张图详细的介绍下项目实现的功能吧:


源代码下载地址: https://ke.qq.com/course/2737465?tuin=c1e74cdc
qq交流群:679578626

java仿QQ聊天软件OIM艰辛之路相关推荐

  1. java仿qq思路_java仿QQ聊天软件OIM艰辛之路(开源项目)

    既然QQ能仿ICQ, 咱java也来个仿QQ. 在我刚学完java后,就想做点什么项目锻炼下自己的技能.凑巧的是,我一个同样学java的朋友在做一个仿qq的项目,不过他做的实在太丑了. 然后他想让我也 ...

  2. 仿QQ聊天软件(登录界面、好友界面、聊天界面)-Java(Swing、Socket)

    文章目录 一.项目结构 二.项目功能 三.制作界面 (一).登录界面的制作 (二).好友列表界面 (三).聊天界面 四.制作服务器 五.设计通信协议 六.项目缺点 学习了socket通信后,就想来制作 ...

  3. 仿QQ聊天软件(JavaFX+云端数据库)

    仿QQ聊天软件(JavaFX+云端数据库) 这个项目是这学期(大二上学期学完Java后的期末项目),寒假闲着无聊就整理下发上来供大家学习以及参考啦(因为国内关于JavaFX的各种资料感觉都太浅了,本来 ...

  4. 转载:仿QQ聊天软件2.0版

    仿QQ聊天软件2.0版 这是大神的地址:牟尼的专栏 http://blog.csdn.net/u012027907 详细的过程本人没看,但是看见他的实现效果,相当诱人!     上次课设做了Java版 ...

  5. 悄悄说--一个Swing界面的仿qq聊天软件

    1.项目简介 一个仿QQ聊天的软件,实现了用户注册,登录,私聊,创建群组进行多人聊天 2.功能描述 用户进行注册自己的用户名,密码,以及个人简介,然后进行登录 当用户注册成功时,会弹出一个注册成功提示 ...

  6. java仿qq_「java qq」仿QQ聊天软件java实现(一) - seo实验室

    java qq 之前学java通信的时候写过简单的通信程序,但比较简陋,于是重新写了一个仿照QQ的聊天软件,主要在界面上做了优化,增加了一些功能.实现的功能有注册.登录.好友列表.分组.黑名单.添加好 ...

  7. c++/MFC CSocket仿QQ聊天软件,实现1对1聊天,群聊

    学习,c++有2个星期了.本来,本人是做php出身的.做php快2年了,最近身边多了很多高手.让自己对c开始感兴趣了,就开始学习c++了.首先接触的就是mfc.前几天,看到了一个博文,是有关,mfc网 ...

  8. 网络编程(三)---- MFC 仿QQ聊天软件

    今天来八一八,MFC的SOCKET 编程,利用CSocket实现一个基于TCP实现一个QQ聊天程序.你会发现,MFC要比WIN32 简单的多.但是如果你不理解具体API socket基础知识,你可能会 ...

  9. 仿QQ聊天软件及源码java版

    一直以来,很多java的同志们都没有一个完整资料来参考.把源码贴出来,大家共享! import java.awt.BorderLayout; import java.awt.Component; im ...

最新文章

  1. .NET Core 工具中的新内容
  2. 今晚包饺子吗?会露馅的那种......
  3. 框架使用SpringBoot + Spring Security Oauth2 +PostMan
  4. Node.js package.json
  5. 强悍高效率 92% Nixie Tube 升压电路 12V升150-250V(转)
  6. 基于 Android Architecture Components 的 MVVM 浅析
  7. MySQL集群架构:MHA+MySQL-PROXY+LVS实现MySQL集群架构高可用/高性能-技术流ken
  8. 大数据技术如何提升企业竞争力
  9. php mysql 命令行模式_phpstudy(mysql命令行的增删改查)
  10. LeetCode:累加数【306】
  11. 判断是否是微信浏览器还是企业微信浏览器
  12. php100视频教程75到100讲的解压密码
  13. java 判断浏览器_Java怎么判断访问者使用的是360浏览器
  14. 电子签章系统解决方案
  15. db mysql导入_db mysql导入数据库
  16. 魔兽争霸无法在这个计算机,win10系统魔兽争霸按F1无法选中自己的英雄的图文办法...
  17. 抛弃光驱,让你的U盘变光驱,制作USB-CDROM,用U盘安装系统
  18. 获取非行间样式和行间样式 Math对象
  19. 【Traffmonetizer】利用闲置电脑/VPS/安卓手机/树莓派来挂机
  20. mysql week weekofyear_MySQL WEEKOFYEAR()用法及代码示例

热门文章

  1. 如何更新深度linux系统,深度操作系统 15.4 RC更新详情
  2. 小鸡拿着蚯蚓闯关的java游戏,蚯蚓大闯关游戏下载|蚯蚓大闯关安卓版下载 v1.0.0 - 跑跑车安卓网...
  3. Cocos Creator之H5版Web版上传头像
  4. 自动驾驶中间件之二:通信中间件,DDS与SOME/IP 谁主沉浮?
  5. Vue脚手架html2canvas生成图片
  6. python实现画板_Python3使用PyQt5制作简单的画板/手写板
  7. 显示前半内容后半内容用省略号_九年级语文下册第四单元写作修改润色课件新人教版...
  8. 理解accuracy/precision_score、micro/macro
  9. 安全测试——AppScan
  10. zero eclipse_全球首款真无孔机!魅族zero亮相:支持屏幕发声和18W无线快充