- 17
- 0
- 约6.89千字
- 约 10页
- 2017-01-30 发布于重庆
- 举报
一对一聊天程序(java)
计算机网络与通信实习报告
实 习 题 目
学生专业班级
学生姓名(学号)
指 导 教 师
完 成 时 间
实 习(设计)地点 信息楼139机房
2010 年5月21日
一、实习题目
实现一个一对一的聊天程序
原理概述
在编程软件的基础上采用TCP协议的网络编程实现一款点对点的聊天程序,使用Java语言编写,将程序设计分为客户端和服务器端。
其中此程序客户端和服务器端链接时,首先输入服务器端的IP地址和端口号,当IP地址正确并且端口号没有被占用时,可以进行客户端和服务器端的链接,,在客户端与服务器端相连后,在发送的文本框中输入你想发送的信息,然后点击发送客户端(服务器端)就能在文本框中显示相应的内容。当服务器和客户端没有链接或断开的时候信息不可以发送并能提示“没有与服务器链接”。
三、设计方案
1、根据实习任务书确定程序编写目标,主要功能,时间安排等。
2、分析需求,确定程序主要框架、所需要的编程语言、以及开发环境。
3、研究研究一对一聊天程序的主要功能,一对一聊天程序的原理。
4、按需求创建项目,开始编码。
5、完成编码,进行单元测试和系统测试。
6、完成测试,进行封装,用Eclipse直接打包成jar文件。
程序编写
这是直接在Eclipse6.0.1环境下进行的
服务器端程序:
ChatServer?:
import java.io.*;
import java.net.*;
import java.util.*;
public class ChatServer {
boolean started = false;
ServerSocket ss = null;
ListClient clients = new ArrayListClient();
public static void main(String[] args) {
new ChatServer().start();
}
/*
创建服务器链接的服务端口,此程序中用的端口号是8888,当8888端口正在使用时,用try...catch来捕捉错误(BindException 和 IOException),当捕捉到BindException时,系统会打印出“端口使用中.... 请关掉相关程序并重新运行服务器! public void start() {
try {
ss = new ServerSocket(8888);
started = true;
} catch (BindException e) {
System.out.println(端口使用中....);
System.out.println(请关掉相关程序并重新运行服务器!);
System.exit(0);
} catch (IOException e) {
e.printStackTrace();
}
/*
此时用一个while循环,来判断是否启动了服务器,当启动服务器时,就执行while循环,创建一个新的客户端
try {
while(started) {
Socket s = ss.accept();
Client c = new Client(s);
System.out.println(a client connected!);
new Thread(c).start();
clients.add(c);
//dis.close();
}
} catch (IOException e) {
e.printStackTrace();
} finally {
try {
ss.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
/*
线程的应用,进行变量的初始化
*/
class Client implements Runnable {
private Socket s;
private DataInputStream dis = null;
private D
原创力文档

文档评论(0)