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

本文介绍了一个基于MVC模式设计的聊天系统,详细阐述了服务器与客户端的交互过程,包括TCP消息交互的实现方式以及消息类型枚举的使用。系统通过对象实例化、加密发送、控件重写和单例模式等技术提高代码管理和可扩展性。服务器通过创建新线程响应客户端连接请求,而客户端则通过socket与服务器建立连接并进行交互。系统还提供了IP地址设置功能以简化登录流程。此外,作者指出添加表情功能未实现,鼓励读者自行添加。

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

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

 

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

 

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

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

 

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

 

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

 

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

 

还有就是可能会出现这种错误:

 

 

按这种方法做:

 

1、右键->属性


 

2、构建路径:


 

3、双击


4、

 

5、ok

 

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

 

 

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

http://blog.youkuaiyun.com/tangcaijun

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

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

http://download.youkuaiyun.com/detail/tangcaijun/5556391

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


 

——神奇物种

 

转载于:https://www.cnblogs.com/dyllove98/archive/2013/06/10/3131194.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值