资源简介

这个是我的毕业设计,除了很少量的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.xml

     文件        384  2011-05-12 18:35  java聊天系统\程序\IMClient\.project

     文件       1009  2011-05-11 20:52  java聊天系统\程序\IMClient\bin\beans.xml

     文件       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$linkMouseAction.class

     文件       1197  2011-05-12 21:13  java聊天系统\程序\IMClient\bin\com\im\client\view\IMClientLogin$MouseAction.class

............此处省略283个文件信息

评论

共有 条评论