1概述 1
2需求描述 1
3功能分析 2
4主要功能实现 2
3
35
48
59
85
89
清华辰安JAVA项目---网络版JQ
1概述
为巩固对JAVA的学习,帮助大家掌握知识点,特让同学们编写一个模拟QQ在线聊天的程序JQ,可实现网上多人聊天,主要用到Swing、线程、网络编程、集合类、文件IO处理、日期、泛型及JAVA基础知识,采用面向对象的方法设计,是对本课程的一个完整的复习和提高。
2需求描述
娱乐聊天作为一个长期的话题,早已经深入人心。为了满足学习JAVA的爱好者对网络聊天程序开发的愿望,因此开发出类似QQ聊天系统的系统JQ。
3功能分析
这个聊天系统分为服务器端和客户端两个部分:服务器端主要负责监听客户端的连接请求,把客户端的注册请求、登录请求通过网络发送给服务器端进行处理,把客户端(请求方)的聊天请求、发送文件请求、发送振动请求等转发给目标客户端(接收方);而客户端就是负责发送请求并处理服务器端返回的响应信息。
4主要功能实现
本项目的客户端和服务器端的源代码列表如图:
从图中可以看出:项目的包主要分成客户端和服务器端两个部分。根据功能分析分为以下几大功能模块:
服务器监听模块
客户端用户登录模块
用户注册模块
聊天模块
发送文件模块
发送振动消息模块
下面就从这6个主要功能模块来分别介绍。
。效果如图:
在服务器监听窗体中显示了:服务器当前所监听的端口、当前的在线用户列表、当前已注册的用户列表。如果要想看当前已注册的用户列表,可以单击【已注册用户列表】标签切换到这个选项卡,显示结果如图:
图中为了方便用户的测试,把密码显示出来了,如果有必要的话,可以修改代码将密码设置为不可见。
如果想关闭并退出服务器,可以单击【关闭服务器】按钮或关闭窗体按钮,此时会弹出是否关闭的提示对话框,效果如图所示:
如果想要关闭服务器,可以单击【是】按钮,否则单击【否】按钮可以取消这步操作。
以上这些功能的实现,需要了解以下几个类:
,当接收到一个客户端连接时就创建一个线程专门处理这个客户端的请求,最后启动服务器监听窗体。代码如下:
/**
* ClassName:
* Author: qiujy
* CreateTime: 2009-4-15
* EMAIL: qjyong@
* Copyright 2009 ++YONG All rights reserved.
*/
package server;
import ;
import .*;
import .*;
import ;
import ;
/** 服务器入口程序*/
public class ServerMain {
public static void main(String[] args) {
int port = (("port"));
//初始化服务器套节字
try {
= new ServerSocket(port);
} catch (IOException e) {
();
}
new Thread(new Runnable() {//启动新线程进行客户端连接监听
public void run() {
try {
while (true) {
// 监听客户端的连接
Socket socket = ();
("客户来了:"
+ sock
().getHostAddress()
+ ":" + ());
//针对每个客户端启动一个线程,在线程中调用请求处理器来处理每个客户端的请求
清华辰安JAVA项目网络JQ 来自淘豆网m.daumloan.com转载请标明出处.