通信——聊天
通信初体验
????????? ???Java学习已经进入了新的阶段,带着新奇与忐忑,让我来讲诉我的——通信初体验。
?
? ???????? ?本次项目主要目的是了解网络通信,以编写简单的服务器和客户端为例,套用我们平时接触较多的QQ?????? 聊天方式,完成聊天室的实现。至此,开始重视代码质量,提升我们对编程的认知。
?
? ??????? ? 在原先的基础上,主要新加入了:ServerSocket 。
? ???????? ?在实现的过程中,巩固了原先的知识,并逐步地走进更高的境界——繁杂。
?
???? ?其实,我们仔细分析实现服务器的几个类:
?
a)???????? ChatServer:顾名思义:聊天的服务器,它主要是对服务器的操作:创建、启动、等待连接、交付给线程处理。
?
b)??????? ServerThread:服务器线程,就是专门来处理Socket对象的线程,是用来具体实现服务器的。
?
c)???????? ChatTools:聊天工具,服务器的辅助,把一些具体的方法封装在这个类,就像工具一样。
?
d)??????? DaoTools:Dao:Data Access Object,主要是用来对数据的处理。在本例中,主要是针对UserInfo类相应的数据的。
?
e)???????? UserInfo:我们建立的用户数据模型类。
?
?这些类功能明确,但简单的几个类组合在一起,就像简单的直线可以画出精美的图画一样,将拥有强大的力量。? ??(至少有将作者我的脑袋搅晕的力量)
?
?这几个类,所牵涉的新知识并不多,主要是已学知识的运用。但至此,代码已对我们提出更高的要求:知其所以然,条理自清明,下手自然顺。所以,我们必须开始掌控自己编写的代码。
?
? 随后,再编写客户端,再加上界面,再补充功能……就暂时算over了。
? 作者在这里写的当然很简单,但做起来是否像写的一样容易呢?我相信,编写过的朋友们心中自有答案。
?
? 同时,看似简单,但作者总觉的它本身还蕴藏更大的能量等待我们去挖掘,以QQ为例,它的功能就很强大不是吗?所以,无止境兮,吾将上下而求索。
1 楼 maozilee 2011-09-30 玩MINA! 大规模的跑!做测试,并且用MySQL,NOSQL把所有聊天记录记下来。。。这系统绝对OK!