资源简介
这个是我的毕业设计,除了很少量的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个文件信息
相关资源
- 微博系统(Java源码,servlet+jsp),适
- java串口通信全套完整代码-导入eclip
- jsonarray所必需的6个jar包.rar
- 三角网构TIN生成算法,Java语言实现
- java代码编写将excel数据导入到mysql数据
- Java写的cmm词法分析器源代码及javacc学
- pc与android通过usb socket实现手机通信
- JAVA JSP公司财务管理系统 源代码 论文
- JSP+MYSQL旅行社管理信息系统
- 推荐算法的JAVA实现
- 基于Java的酒店管理系统源码(毕业设
- java-图片识别 图片比较
- android毕业设计
- java23种设计模式+23个实例demo
- java Socket发送/接受报文
- JAVA828436
- java界面美化 提供多套皮肤直接使用
- 在线聊天系统(java代码)
- 基于Java的图书管理系统807185
- java中实现将页面数据导入Excel中
- java 企业销售管理系统
- java做的聊天系统(包括正规课程设计
- Java编写的qq聊天室
- 商店商品管理系统 JAVA写的 有界面
- JAVA开发聊天室程序
- 在linux系统下用java执行系统命令实例
- java期末考试试题两套(答案) 选择(
- JAVA3D编程示例(建模、交互)
- Java 文件加密传输
- java做的房产管理系统
评论
共有 条评论