信息与电气工程学院
课程设计说明书
(2010 /2011 学年第 2 学期)
题 目: JAVA 程序设计_--《多用户聊天室》
专业班级: 计算机 2009 -- 1 班
学生姓名:
刘 璐
学 号: _ 090210118
指导教师: 龚 炳 江
设计周数:
一 周 _
2
一、课程设计题目
多用户聊天室
摘要 运用本学期所学到的 J2SE、SQL 数据库等相关知识开发了此聊天程序。
该程序着重应用了面对象编程、java GUI 编程、多线程、网络编程、IO 流等技术。主
要实现了用户的注册,多用户的同时通讯。
通过写此程序对本学习所学到的只是有了一遍新的理解,在设计程序过程中通过解决重
重困难,增加了自己的编程能力。
关键词: JAVA; 课程设计; 聊天室
二、系统开发背景
随着社会的迅速发展,人际关系变得越来越重要,我们要经常与亲戚、朋友、同学、同
事和其他一些人保持联系,因此,为了能够更快、更方便的联系亲朋好友,可以通过网络聊
天程序实现。如何实现多用户的同时通讯,这就是我们研究这个课题的目的。
三、设计主要目的及意义
该程序着重应用了面对象编程、java GUI 编程、多线程、网络编程、IO 流等技术。主要实现
了用户的注册,多用户的同时通讯。它能够被大多数用户所接受,因为它能够呈现出清晰的
界面,是人们能够很好的理解。能在一些方面给人们更好的服务,成为人们的好帮手。
经过这一个学期对 J2SE 的学习,我们都学到了不少东西,可能有些学的还不够理想,但无论
如何这些知识都为我们的下一步学习打下了坚实的基础。做这么一个课程设计,一方面是为
了检查我们一个学期以来的学习成果,另一方面也是为了让我们进一步的掌握和运用它,同
时也让我们认清自己的不足之处和薄弱环节,加以弥补和加强。
四、程序截图
3
目录结构
4
五、附录:程序清单
//服务器端 ChatServer.java
1
package com.luger.util;
2
3
import java.io.IOException;
4
import java.net.*;
5
import java.io.*;
6
import java.util.*;
7
8
public class ChatServer {
9
boolean started = false;
10
ServerSocket server = null;
11
Socket s = null;
12
List<Client> clients = new ArrayList<Client>();
13
14
public static void main(String[] args) {
15
new ChatServer().start();
16
17
}
18
19
void start() {
20
try {
21
server = new ServerSocket(8888);
22
} catch (BindException e) {
23
System.out.println("端口使用中....");
24
System.out.println("请关掉相关程序并重新运行服务器!");
25
System.exit(0);
26
} catch (IOException e) {
27
e.printStackTrace();
28
}
29
try {
30
started = true;
31
while (started) {
32
s = server.accept();
33
Client c = new Client(s);
34
new Thread(c).start();
35
clients.add(c);
36
System.out.println("a client Connected");
37
// in.close();
38
}
39
40
} catch (IOException e) {
41
42
}
43
}
44
45
class Client implements Runnable {
46
Socket s = null;
47
DataInputStream in = null;
48
DataOutputStream out = null;
49
private boolean connected = false;
50
51
Client(Socket s) {
52
this.s = s;
53
try {
54
in = new DataInputStream(s.getInputStream());
55