读书人

java io学习札记2-结合一个基于socket

发布时间: 2012-08-31 12:55:03 作者: rapoo

java io学习笔记2---结合一个基于socket的聊天室
前面间学习了java io的编程,后来感觉光只是看这些收获甚微,于是就自己做了一个简单的聊天室。基于java socket的聊天室,实现了客户端,实现了群聊,私聊,发送表情,互相发送文件,查看聊天记录,以及一些相关的设置;服务器端实现了发送系统公告,以及踢人的功能。具体的代码,我上传在附件里面。


首先,介绍一个系统的总体架构,基于c/s模式的java聊天室,采用socket编程,当然,传输数据,我采用的是tcp协议,在服务器端进行监听,每次加入一个新的用户,就开辟一个新的线程用于监听这个用户的动态。当然,这种方式可能不是很科学,但由于知识有限,只能简单的应用。




另外,对于聊天记录的读写,我采用的是文件的操作,主要是按行写入文件,按行读取文件,这里,我稍微做了一些改动,能够实现分页读取聊天记录。




关于发送表情,我这里发送的不是表情文件,而是发送表情对应的一些特殊的编号,这个可能有点搓,思路也很垃圾,但还能用


剩下最后一个问题,就是俩个聊天用户进行互相发送文件,由于对于java io编程以及java 网络编程,都不是很熟悉这个问题困扰了我一天,后来通过查阅资料,结合聊天室整个的流程,终于实现了用户互相传送文件,我这里的思路是当服务器端收到一个用户发来,我要发送文件的请求时,判断这个用户要发给谁,然后,使这俩个用户之间建立连接。发送文件的一方暂时作为服务器,接受方作为客户端。当文件传输成功之后,断开俩人的连接,具体的实现请参考附件源代码



今天终于有机会上传项目源文件了,另外里面包含了系统所需要的jar包。主要是一个mysql的jdbc驱动jar,和一个java mail的jar文件。为了节省空间,只上传了java mail的jar文件,另外mysql的驱动jar,网上太多。

项目运行主要是chatroom里面的server ,及client,先运行server。里面自己做了个找回密码的功能,找回密码是采用的发送邮件的方式

如果看不到附件,请去csdn下载,http://download.csdn.net/detail/a450065/4220644

读书人网 >编程

热点推荐