java 仿qq 聊天工具(基于mvc三层架构,附 mvc架构模式pdf说明文档)支持开源
用了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说明文档)支持开源相关推荐
- java三层 开源_java 山寨qq 聊天工具(基于mvc三层架构,附 mvc架构模式pdf说明文档)支持开源...
[实例简介] java 山寨qq 聊天工具(基于mvc三层架构,附 mvc架构模式pdf说明文档)支持开源 [实例截图] [核心代码] java山寨qq聊天工具(基于mvc三层架构,附mvc架构模式p ...
- Java+Swing+mysql仿QQ聊天工具
Java+Swing+mysql仿QQ聊天工具 一.系统介绍 二.功能展示 1.用户登陆 2.好友列表 3.好友聊天 4.服务器日志 三.系统实现 四.其它 1.其他系统实现 2.获取源码 一.系统介 ...
- Java版qq聊天工具+Sql数据库+论文(功能全面)可做期末大作业(可毕设)
文章目录 前言 一.登录界面 二.注册界面 三.修改密码 四.忘记密码 五.查找好友 六.群聊 七.使用方法及下载地址 前言 Java版仿QQ聊天工具(MyQQ)+Sql数据库,里面的功能有注册.登录 ...
- [源码和文档分享]基于java 的仿QQ聊天工具
一 需求分析 本系统是基于java开发的聊天室.有用户注册.用户登陆.修改密码.忘记密码.添加好友.用户聊天.群聊功能.如果服务器还没有启动,则客户端是不可以登陆.注册.忘记密码,如果在运行过程中,服 ...
- java 仿qq庅_[源码和文档分享]基于java 的仿QQ聊天工具
一 需求分析 本系统是基于java开发的聊天室.有用户注册.用户登陆.修改密码.忘记密码.添加好友.用户聊天.群聊功能.如果服务器还没有启动,则客户端是不可以登陆.注册.忘记密码,如果在运行过程中,服 ...
- java仿QQ聊天软件OIM艰辛之路
既然QQ能仿ICQ, 咱java也来个仿QQ. 在我刚学完java后,就想做点什么项目锻炼下自己的技能.凑巧的是,我一个同样学java的朋友在做一个仿qq的项目,不过他做的实在太丑了. 然后他想让我也 ...
- 基于java 的仿QQ聊天工具
概要设计 在客户端:当用户登录后,生成唯一的socket, 存放在Client实体类中,在整个客户端就一个Client类和一个socket.有一个窗口控制器--ChatUIList,用来记录用户和好友 ...
- Java实现仿QQ聊天工具的项目总结
在写这篇文章之前,首先要感谢我的队友的辛勤付出,没有他们的付出与配合,这个项目是不能顺利完成的. 资源文件:工程文件,可运行JAR包 第一点 经验:项目开始之前应该先向老师或者学长先询问经验.或者到网 ...
- 仿QQ聊天工具(JAVA实现)项目总结
闲暇之余基于Java Swing自己写了一个即时聊天软件LL,源码地址:https://github.com/nmyphp/msn532.git.欢迎大家一起改进. 一.遇到的异常及解决办法 1. ...
最新文章
- 桌面程序开发入门(WinForm with C#)
- mysql修改网络服务_MySql-Server 就要修改成允许 Web-Server 进行远程连接. 最后一步 需要使用ALTER USER … ACCOUNT UNLOCK语句进行解锁了:...
- linux与安卓系统目录,android系统架构及源码目录结构
- java安全编码指南之:死锁dead lock
- 计算机软件行业规范,计算机软件技术规范(ppt 117页)
- c语言小数表达式运算课程设计,数据结构课程设计表达式计算.doc
- 一个或多个音频服务未运行 win7 错误1079:此服务的账户不同于运行于同一进程上的其他服务账户...
- BizTalk开发系列(二十九) 宏的使用
- collections的defaultdict使用
- Ubuntu 16.04 安装后网络、ssh禁止root、上传设置
- 女人在聊天中说给你一个拥抱_不要提高技能; 拥抱一个机器人
- 物联网工程课程设计论文
- php支付宝封装类,android封装支付宝支付
- 人名按照首字母排序c语言,c语言按中文姓名排序问题
- 微软bi报表服务器,安装 Power BI 报表服务器
- 【java】我国最高山峰是珠穆朗玛峰,8848米。现在我有一张足够大的纸,它的厚度是0.01米。请问,我折叠多少次,可以折成珠穆朗玛峰的高度。
- Unity 画面质量设置
- 用Koomail保障重要邮件不丢失
- DNS轮询解析方式实现负载均衡
- hashMap1.8 resize()个人解读
热门文章
- C# combobox使用
- c#实现简单的手写板功能
- Huffman Tree哈夫曼树权值路径长度WPL计算,binarytree ,Python
- 最优化理论极简入门(第二部分):拉格朗日对偶问题
- word文档生成PDF文档时候自动生成书签方法
- B端 — 卡片式列表设计
- C语言/C++基础之小猪佩奇
- 数据治理之安装DSS和LINKIS,QUALITIS过程中遇到的问题汇总
- java里remark是什么意思_remark是什么意思中文翻译
- 无法打印,必须将PrintToFileLicense属性设置到一个有效的许可证之后才可以打印