资源简介
这个是我的毕业设计,除了很少量的UI设计外,代码都是自己写的,欢迎大家拿去参考,水平有限,请大家多指教。
该系统开发主要包括一个网络聊天服务器程序和一个网络聊天客户程序两个方面。前者通过Socket套接字建立服务器,服务器能读取、转发客户端发来信息,并能刷新用户列表。后者通过与服务器建立连接,来进行客户端与客户端的信息交流。其中用到了局域网通信机制的原理,通过直接继承Thread类来建立多线程。开发中利用了计算机网络编程的基本理论知识,如TCP/IP协议、客户端/服务器端模式(Client/Server模式)、网络编程的设计方法等。在网络编程中对信息的读取、发送,是利用流来实现信息的交换,其中介绍了对实现一个系统的信息流的分析,包含了一些基本的软件工程的方法。经过分析这些情况,该聊天工具采用Eclipse为基本开发环境和java语言进行编写,首先可在短时间内建立系统应用原型,然后,对初始原型系统进行不断修正和改进,直到形成可行系统。
客户端采用C/S结构,管理端采用B/S的结构,用Tomcat 作为服务器,MySQL作为数据库,还使用到了WindowBuilder开源框架进行界面开发。
主要功能:
客户端可以实现注册,即时聊天,相互之间收发文件,发送截图,查看历史聊天记录等功能。收发消息时,可以实现离线接收。
服务器端应当建立一个ServerSocket,并且不断进行侦听是否有客户端连接或者断开连接(包括判断没有响应的连接超时)。服务器端应当是一个信息发送中心,所有客户端的信息都传到服务器端,由服务器端根据要求分发信息。
在后台管理系统,可以到对用户进行增删改查,查看在线用户,和踢用户下线
主要技术:
1、即时通讯原理
首先验证登陆,如果成功,则建立与服务端的socket连接,服务端新开启一个线程专门为它服务,将打包好的Message发送给服务器端,服务器端根据Message里面的信息,再将信息转发给其他用户。一个标准的C/S模式。
2、Swing技术
3、Java web
采用B/S的结构实现服务器端,对用户和在线用户进行增删改查,和踢用户下线,以及开启服务器和关闭服务器。
说明:
本项目采用mysql做数据库,下载后请先看read_me.txt,按照说明可运行程序。
系统默认是单机情况,如果要进行局域网的测试,请点击登陆窗口下方的设置,然后输入服务端程序所运行机器的IP。
另外附上我的论文,以便大家更快的了解该项目
我的“java即时聊天系统”是完全可以运行的,很多人根本就是不会设置eclipse或者 myeclipse,甚至还有些人都分不清java版本的区别,就在那喊“代码有错误”、“程序 无法运行” ,让我很无语。在此我不是想说我的代码写的有多好,但绝对是没有错误的。
转载请注明出处 thank you
本工程功能完成,完全可以正常运行。对于下方评论说无法运行的,请提高自己的姿势水平,学习下基本的mysql与java知识。
代码片段和文件信息
package com.im.client.model;
import java.awt.Color;
import java.awt.image.BufferedImage;
import java.io.BufferedOutputStream;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.objectInputStream;
import java.io.objectOutputStream;
import java.net.Socket;
import java.util.ArrayList;
import java.util.List;
import javax.imageio.ImageIO;
import javax.swing.JFileChooser;
import javax.swing.JOptionPane;
import com.im.client.record.MessageRecord;
import com.im.client.util.Manager;
import com.im.client.view.IMChat;
import com.im.client.view.IMFriendList;
import com.im.client.view.friendsCard.MyFriendPanel;
import com.im.common.Message;
import com.im.common.MessageType;
import com.im.common.User;
public class ClientConnToServerThread extends Thread {
private Socket socket;
private IMFriendList fl;
private IMChat chat=null;
private BufferedOutputStream bos;
public ClientConnToServerThread() {
}
public ClientConnToServerThread(Socket s) {
this.socket = s;
}
@Override
public void run() {
while(!isInterrupted()){
try {
Message m=(Message)receive();
new MessageRecord().afterReceive(m);
if(m.getMsgType()==MessageType.message_comm_mes.intValue()){
System.out.println(m.getSenderAccount()+“ 发送给“+m.getReceiverAccount()+“ 内容:“+m.getContent());
//如果会话窗口已经打开
//如果会话窗口未打开,则自动打开窗口
checkChatWindow(m);
chat.showMessage(mnew Color(00255));
}else if(m.getMsgType().intValue()==MessageType.message_ret_onLineFriend.intValue()){
List list=m.getFriends();
fl=Manager.FRIEND_LIST;
MyFriendPanel mfp=(MyFriendPanel) fl.getMyFriendPanel();
mfp.updateOnline(list);
}else if(m.getMsgType().intValue()==MessageType.message_offline){
fl=Manager.FRIEND_LIST;
MyFriendPanel mfp=(MyFriendPanel) fl.getMyFriendPanel();
mfp.updateOffline(m.getSenderAccount());
}else if(m.getMsgType().intValue()==MessageType.message_img){
//如果会话窗口已经打开
//如果会话窗口未打开,则自动打开窗口
checkChatWindow(m);
m.setImg(chat.bytesToImage(m.getImageByte()));
chat.showMessage(mnew Color(00255));
}else if(m.getMsgType().intValue()==MessageType.message_file){
//接收到的是文件包
checkChatWindow(m);
// String s=“c:/“;
//请求发送包
if(m.getState()==2){
//对话框 是否接收
int i=JOptionPane.showConfirmDialog(chat “确定接收“ +
m.getFileName()+“(“ +m.getLength()+“KB)“ “接收文件“JOptionPane.YES_NO_OPTION);
Integer sender=m.getReceiverAccount();
Integer getter=m.getSenderAccount();
m.setSenderAccount(sender);
m.setReceiverAccount(getter);
//同意就发送同意接收数据包
if(i==JOptionPane.YES_OPTION){
//打开保存文件对话框
JFileChooser jfc=new JFileChooser(“c:/“);
jfc.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY);
int mo
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 1591296 2011-07-07 22:00 java聊天系统\毕业设计论文.doc
文件 232 2011-05-11 20:51 java聊天系统\程序\IMClient\.classpath
文件 930 2011-03-02 21:31 java聊天系统\程序\IMClient\.myeclipse\profiler\IMClientLogin.xm
文件 384 2011-05-12 18:35 java聊天系统\程序\IMClient\.project
文件 1009 2011-05-11 20:52 java聊天系统\程序\IMClient\bin\beans.xm
文件 7063 2011-05-12 18:35 java聊天系统\程序\IMClient\bin\com\im\client\model\ClientConnToServerThread.class
文件 2272 2011-05-12 18:35 java聊天系统\程序\IMClient\bin\com\im\client\model\IMClientServer.class
文件 2438 2011-05-12 18:35 java聊天系统\程序\IMClient\bin\com\im\client\model\IMClientUserServer.class
文件 2826 2011-05-12 18:35 java聊天系统\程序\IMClient\bin\com\im\client\model\SendFileThread.class
文件 3867 2011-05-12 18:35 java聊天系统\程序\IMClient\bin\com\im\client\record\MessageRecord.class
文件 1674 2011-05-12 21:50 java聊天系统\程序\IMClient\bin\com\im\client\util\DesktopRuner.class
文件 1187 2011-05-12 18:35 java聊天系统\程序\IMClient\bin\com\im\client\util\Manager.class
文件 2459 2011-05-12 18:35 java聊天系统\程序\IMClient\bin\com\im\client\view\friendsCard\FriendHeadPanel$HighLight.class
文件 3836 2011-05-12 18:35 java聊天系统\程序\IMClient\bin\com\im\client\view\friendsCard\FriendHeadPanel.class
文件 1669 2011-05-12 18:35 java聊天系统\程序\IMClient\bin\com\im\client\view\friendsCard\MainListPanel.class
文件 3841 2011-05-12 18:35 java聊天系统\程序\IMClient\bin\com\im\client\view\friendsCard\MyFriendPanel.class
文件 2939 2011-05-12 18:35 java聊天系统\程序\IMClient\bin\com\im\client\view\friendsCard\StrangerPanel.class
文件 1431 2011-05-12 18:35 java聊天系统\程序\IMClient\bin\com\im\client\view\IMChat$1.class
文件 1894 2011-05-12 18:35 java聊天系统\程序\IMClient\bin\com\im\client\view\IMChat$2.class
文件 1850 2011-05-12 18:35 java聊天系统\程序\IMClient\bin\com\im\client\view\IMChat$3.class
文件 2282 2011-05-12 18:35 java聊天系统\程序\IMClient\bin\com\im\client\view\IMChat$4.class
文件 1134 2011-05-12 18:35 java聊天系统\程序\IMClient\bin\com\im\client\view\IMChat$5.class
文件 1342 2011-05-12 18:35 java聊天系统\程序\IMClient\bin\com\im\client\view\IMChat$6.class
文件 2904 2011-05-12 18:35 java聊天系统\程序\IMClient\bin\com\im\client\view\IMChat$7.class
文件 16387 2011-05-12 18:35 java聊天系统\程序\IMClient\bin\com\im\client\view\IMChat.class
文件 759 2011-05-12 21:13 java聊天系统\程序\IMClient\bin\com\im\client\view\IMClientLogin$1.class
文件 756 2011-05-12 21:13 java聊天系统\程序\IMClient\bin\com\im\client\view\IMClientLogin$2.class
文件 2593 2011-05-12 21:13 java聊天系统\程序\IMClient\bin\com\im\client\view\IMClientLogin$3.class
文件 2249 2011-05-12 21:13 java聊天系统\程序\IMClient\bin\com\im\client\view\IMClientLogin$li
文件 1197 2011-05-12 21:13 java聊天系统\程序\IMClient\bin\com\im\client\view\IMClientLogin$MouseAction.class
............此处省略283个文件信息
相关资源
- 学生教务管理系统JavaWeb+Mysql
- Java处理Excel文档需要的完整POI依赖j
- javamail实现邮件系统
- Java数字信号处理
- javaee 实现网上商城
- 基于java-web酒店管理系统前、后台
- java swing项目皮肤包+使用方法说明
- org.freejava.javasourceattacher_1.2.1.jar
- javaanpr国外车牌识别系统
- Java面试宝典2018年最新版
- java ee j2ee 帮助文档 java ee j2ee 帮助文
- JAVAWEB大作业报告书
- java 学习指南 适合初学者
- java桌面程序swing demo
- java读取firebird数据库+jar包
- 物流管理平台 java web 完整项目 包含源
- Java并发编程实战 (带完整书签扫描版
- JAVA图书馆管理系统含数据库
- ArcGIS Server Java ADF 案例教程.pdf
- java调用PageOffice的样例代码
- 数据库网上书店+java实现+连接数据库
- JoshuaBloch-EffectiveJava-Addison-Wesley2017.p
- 用jsp+java做的一个财务管理系统
- JAVA 图书馆管理系统
- java源代码 人事管理系统
- java 网络编程tcp/ip
- 软件工程课程设计飞机订票系统Java
- java实现excel批量导入数据到数据库m
- ELMJava实现
- 基于java 的人工智能井字棋小游戏
评论
共有 条评论