这篇文章的原产期应该是在11月份的,草稿我也写好了,但是由于还想在修饰修饰,未曾料到保存草稿的在线记事本网站服务器挂了,说是一个星期恢复,可是这都要1月份了,还是没有修复好。好崩溃啊~。~ 好吧,不能再等了,只能自己重新写一份吧。这次咱就不唠叨生活了,直入主题。
看题目就知道这次分享的东西,简单的书就是是用Java开发的类似于QQ的即时聊天工具,这个是我的毕业设计的题目,现在分享给有需要的人吧。论文是不可能给你们的啦,给你们源码,你们自己看看吧。这份代码不完全是我自己写的,我记得最初的代码是从网上找的,但是我不记得是从哪里搞的了,在此对原作者表示抱歉,之后对代码进行了修改,重写写了界面,增加了一些功能。
摘要
主要设计和开发一个基于Java的局域网即时通信软件,采用客户端/服务器架构模式,功能上实现基本的一对一通信和传输文件,另外还有注册、登录、添加好友、删除好友等功能。该系统基于TCP/IP网络协议,使用Java语言开发,通过Socket进行通信,界面简洁,服务器端使用MySQL数据库存储数据。开发中使用了多线程、泛型、反射、抽象等技术。
功能介绍
此软件是基于C/S模式开发的,分为服务端和客户端。
服务端
- 开启关闭服务器。
- 开放端口,监听客户端发来的请求。
- 处理各种请求,需要对数据库操作的,能够正常并正确的处理。
- 请求包括:(1)登录请求;(2)注销请求;(3)注册请求;(4)更新资料请求;(5)查看资料请求;(6)搜索好友请求;(7)添加好友请求;(8)删除好友请求;(9)离线信息请求;(10)找回密码请求。
客户端
- 注册功能。
- 找回密码功能。
- 设置连接的服务器功能。(便于测试,打死的话比较麻烦了。)
- 登录功能。
- 发送信息功能,可发送默认的表情。
- 传送文件功能。
- 查询用户功能。
- 添加和删除好友功能。
- 发送和接收离线消息功能。
- 修改密码功能。
- 查看聊天记录功能。
- 其他小功能,比如靠边时自动隐藏、最小化右下角运行、聊天时设置字体、截屏、好友上线提醒。
开发环境
- 操作系统:Windows 7;
- 编程语言:Java;
- 数据库系统:MySQL 5.5;
- 开发框架:Swing;
- 开发工具:Eclipse 3.6。
概要设计
其实思想上设计是比较简单的。说白了最主要的就是数据库的功能的使用以及TCP和UDP的连接和传送。
用户与用户之间的聊天要有时效性、发送的数据又少,所以采用UDP的协议传送,虽不安全,速度快。
传送文件的连接是TCP的连接,毕竟文件是点到点且必须保证完整地传输的。
服务器与客户端之间的连接是TCP的,传输的都是重要的东西啊,必须要有保证。
密码采用MD5加密。
数据库采用连接池和多线程。
详细设计
擦,这部分我就不说了,看得懂代码你就懂得具体是怎么设计的了。
效果截图
使用说明
JQServer\properties下
jdbc config.properties 设置数据库的连接设置;
JQ_database.sql 导入MySQL数据中的表结构。
默认已经有很多账号了,1001到1005都设置了,默认的登录密码是123456.
导入项目之后,运行可能运行不起来的话,如果提示是缺少包的话,请加入JQChat\JQClient\src\lib下的包。
缺陷
这个软件只能是半成品,我觉得后面可以改很多东西,也有很多缺陷。我目前想到的我列一下。
- 如果在同一台机子上登录两个客户端的话,因为服务器是根据IP地址记录的,所以本机和本机聊天的话,信息就会错乱。不知道能否通过线程号之类的区分一下。
- 传送大文件(500MB)的时候可能会有些卡。
- 服务端的界面上的在线用户和已注册用户没有做,就是说没有显示。
- 用户状态没有做好,即隐身啊、离线啊啥的。
- 当时答辩的时候,导师也说了一点,如果服务器断线的话,用户怎么办?当时想到的是,客户端做个循环一直去查与服务器的连接状态,如果断开,会弹出提醒之类的。
- 打包成exe我也做了,这里就不提供了。自己弄下吧。
- 聊天记录中默认的表情没有显示,因为直接读取的聊天记录文件。可能读取的时候需要转换一下。
- 没法发送自定义的图片。
- 语音聊天、视频聊天啊。
这个只能算作半成品,还有很多可以完善,希望这个对你有帮助,同时希望你能够在此基础之上继续开发。
Laycher我现在已经不做开发了。无力了~.~
代码查看
https://github.com/laycher/JQChat
>> 若为原创,转载请注明: 转载自Laycher's Blog
>> 本文链接地址: 基于Java的局域网即时通信软件开发
>> 订阅本站: http://feed.feedsky.com/laycher
毕业设计?这个是我刚写完的一个demo。世界真是太小了。
哇塞,大神级别的人物啊。
三无屌丝路过,博客不错呵
不错不错
不错,我之前也做过一个局域网聊天的工具~jchatting~
很久不写java了。
邻居,我怎么看不到图
用的是minus.com的图片空间,国内偶尔被墙的。求推荐。
点点啊,绝对不墙
曾经下载过一款局域网聊天工具,没有服务器只有客户端也可以聊天
最讨厌Java…
在么 大神
What?
我们这次课设正好是这个题目 运行不来 而且貌似有很多主函数 我是学渣 =。= 求解答啊
请问 public String getType() {
return “” + font.getSelectedIndex() + color.getSelectedIndex() + getFontType()
+ size.getSelectedIndex();
}
出现了Description Resource Path Location Type
The return type is incompatible with Window.getType() 是怎么回事
大神,在吗,JQChat\JQClient\src\lib这个文件怎么没有
咦,估计是没有上传,以前很早的东西了,怕是没有了。你看看运行缺少哪些lib文件,网上下载下吧。