用了3天多时间,因实验5要求就顺便做一下这东西吧,废话不多说,就简单说一些东西吧:

该聊天系统是基本mvc模式设计的(感觉这种模式代码比较好管理,可扩展性强),编写过程中涉及的东西比较多,包括对象实例化,加密发送,控件重写,单例模式等等,在这就不细说了,自己看代码去吧。大概说一下主要设计思路吧。

服务器:首先让服务器先跑起来(服务器是没有界面的,懒得写了,想写的话自己加吧),服务器会在服务器 controller(下面简称c层)的MainServerSocket类里的一个accept() 方法阻塞,等待客户连入,一旦有客户连接上,立刻往下执行,启动一条新(服务)线程,此线程控制与该接入客户进行TCP消息交互,服务器就这样一直监听着,来一个客户new一个线程,服务器线程数则为 = M(原本线程数) + n(连接客户数)

客户端:客户端则与服务器不一样,客户端点完login之后则new出一个socket与服务器相连,若连接上,则先判断是否重名,无则登录,此时c层只有一条线程,这一线程与服务器进行TCP消息交互。

(TCP消息交互到底怎么交互,看代码去吧)

MessageTypeEnum:还有就是在进行TCP消息交互 时每一条消息都带有一个(MessageTypeEnum)头,这个MessageTypeEnum与服务器严格保持一致(即使有一些消息不是双方都会用到),所有交互消息都根据MessageTypeEnum 头来进行分类处理。

大概就这样,不懂的话好好利用百度吧,百度确实是个很不错的学习工具。

(注:添加表情功能没做了,如果想做的同志自己添加吧,用jtextpane应该可以解决多格式图文共存的输入框)

用的时候可将common.commonData 类的ip 改成自己的ip地址,这样就不用每次登录都改ip了,端口自己喜欢吧,尽量选1024以后的

有什么问题的话可以到我博客留言吧

http://blog.csdn.net/tangcaijun

这个小软件测试次数不多(还有几天就四级了,所以做起来比较赶),可能使用过程中会出现少量bug,请见谅!

(中间有一些图片看不到,在资源里面有这一完整文档,和这个小软件的完整源码,直接去下载吧,免积分)

http://download.csdn.net/detail/tangcaijun/5556391

爱设计,爱编程,支持开源~!!

——神奇物种

java 仿qq 聊天工具(基于mvc三层架构,附 mvc架构模式pdf说明文档)支持开源相关推荐

  1. java三层 开源_java 山寨qq 聊天工具(基于mvc三层架构,附 mvc架构模式pdf说明文档)支持开源...

    [实例简介] java 山寨qq 聊天工具(基于mvc三层架构,附 mvc架构模式pdf说明文档)支持开源 [实例截图] [核心代码] java山寨qq聊天工具(基于mvc三层架构,附mvc架构模式p ...

  2. Java+Swing+mysql仿QQ聊天工具

    Java+Swing+mysql仿QQ聊天工具 一.系统介绍 二.功能展示 1.用户登陆 2.好友列表 3.好友聊天 4.服务器日志 三.系统实现 四.其它 1.其他系统实现 2.获取源码 一.系统介 ...

  3. Java版qq聊天工具+Sql数据库+论文(功能全面)可做期末大作业(可毕设)

    文章目录 前言 一.登录界面 二.注册界面 三.修改密码 四.忘记密码 五.查找好友 六.群聊 七.使用方法及下载地址 前言 Java版仿QQ聊天工具(MyQQ)+Sql数据库,里面的功能有注册.登录 ...

  4. [源码和文档分享]基于java 的仿QQ聊天工具

    一 需求分析 本系统是基于java开发的聊天室.有用户注册.用户登陆.修改密码.忘记密码.添加好友.用户聊天.群聊功能.如果服务器还没有启动,则客户端是不可以登陆.注册.忘记密码,如果在运行过程中,服 ...

  5. java 仿qq庅_[源码和文档分享]基于java 的仿QQ聊天工具

    一 需求分析 本系统是基于java开发的聊天室.有用户注册.用户登陆.修改密码.忘记密码.添加好友.用户聊天.群聊功能.如果服务器还没有启动,则客户端是不可以登陆.注册.忘记密码,如果在运行过程中,服 ...

  6. java仿QQ聊天软件OIM艰辛之路

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

  7. 基于java 的仿QQ聊天工具

    概要设计 在客户端:当用户登录后,生成唯一的socket, 存放在Client实体类中,在整个客户端就一个Client类和一个socket.有一个窗口控制器--ChatUIList,用来记录用户和好友 ...

  8. Java实现仿QQ聊天工具的项目总结

    在写这篇文章之前,首先要感谢我的队友的辛勤付出,没有他们的付出与配合,这个项目是不能顺利完成的. 资源文件:工程文件,可运行JAR包 第一点 经验:项目开始之前应该先向老师或者学长先询问经验.或者到网 ...

  9. 仿QQ聊天工具(JAVA实现)项目总结

    闲暇之余基于Java Swing自己写了一个即时聊天软件LL,源码地址:https://github.com/nmyphp/msn532.git.欢迎大家一起改进. 一.遇到的异常及解决办法 1.   ...

最新文章

  1. 桌面程序开发入门(WinForm with C#)
  2. mysql修改网络服务_MySql-Server 就要修改成允许 Web-Server 进行远程连接. 最后一步 需要使用ALTER USER … ACCOUNT UNLOCK语句进行解锁了:...
  3. linux与安卓系统目录,android系统架构及源码目录结构
  4. java安全编码指南之:死锁dead lock
  5. 计算机软件行业规范,计算机软件技术规范(ppt 117页)
  6. c语言小数表达式运算课程设计,数据结构课程设计表达式计算.doc
  7. 一个或多个音频服务未运行 win7 错误1079:此服务的账户不同于运行于同一进程上的其他服务账户...
  8. BizTalk开发系列(二十九) 宏的使用
  9. collections的defaultdict使用
  10. Ubuntu 16.04 安装后网络、ssh禁止root、上传设置
  11. 女人在聊天中说给你一个拥抱_不要提高技能; 拥抱一个机器人
  12. 物联网工程课程设计论文
  13. php支付宝封装类,android封装支付宝支付
  14. 人名按照首字母排序c语言,c语言按中文姓名排序问题
  15. 微软bi报表服务器,安装 Power BI 报表服务器
  16. 【java】我国最高山峰是珠穆朗玛峰,8848米。现在我有一张足够大的纸,它的厚度是0.01米。请问,我折叠多少次,可以折成珠穆朗玛峰的高度。
  17. Unity 画面质量设置
  18. 用Koomail保障重要邮件不丢失
  19. DNS轮询解析方式实现负载均衡
  20. hashMap1.8 resize()个人解读

热门文章

  1. C# combobox使用
  2. c#实现简单的手写板功能
  3. Huffman Tree哈夫曼树权值路径长度WPL计算,binarytree ,Python
  4. 最优化理论极简入门(第二部分):拉格朗日对偶问题
  5. word文档生成PDF文档时候自动生成书签方法
  6. B端 — 卡片式列表设计
  7. C语言/C++基础之小猪佩奇
  8. 数据治理之安装DSS和LINKIS,QUALITIS过程中遇到的问题汇总
  9. java里remark是什么意思_remark是什么意思中文翻译
  10. 无法打印,必须将PrintToFileLicense属性设置到一个有效的许可证之后才可以打印