Java聊天室实验指导书
一、实验目的与要求
目的:编写一个局域网Java聊天室系统,掌握Java网络通信、多线程、IO文件操作等高级应用编程技能。
要求:以课本第15章 Java网络通信例15.3、15.4的源代码为基础,编写一个基于TCP socket套接字的小型Clent/Server Java聊天室系统。
完成如下功能:
1.多客户端模式下,实现客户与客户的单独通信,要求信息通过服务器中转(50分)
2.端到端的通信,实现并行通信模式(不再是你说一句,我说一句,一端的信息发送不受另一端的影响)(30分)
3.实现端到端的文件传输(20分)
4.添加图形界面(选做有加分)
二、实验步骤
1.运行课本例15.3的支持单客户的TCP socket套接字C/S程序。
1.1在本机上建立Java工程,分别运行客户端、服务端程序,切换客户端/服务端控制台,交替输入聊天消息,体验客户端/服务端聊天对话过程。
1.2在两台不同的机子上分别运行客户端、服务端程序,需修改客户端套接字连接的服务器地址,在两台机子的控制台交替输入聊天消息,体验不同机器上客户端/服务端聊天对话过程。
1.3启动一次服务端程序,启动两次客户端程序,在两个客户端控制台输入聊天消息,观察服务端的控制台运行结果,并思考原因。
2.运行课本例15.4的支持多客户的TCP socket套接字C/S程序。
2.1在本机上建立Java工程,启动一个服务端程序,启动两个客户端程序,在控制台输入聊天消息,体验支持多客户端的客户端/服务端聊天对话过程。
2.2在两台不同的机子上分别运行客户端、一台机子上运行服务端程序,需修改客户端套接字连接的服务器地址,在各机的控制台输入聊天消息,体验不同机器上多客户端/服务端聊天对话过程。
3.通过查询例15.3与15.4相关的JDK API,自学理解程序每条语句的含义。并尝试自己写出客户端与服务器双向通讯的例子。
4. 理解例15.4的基于TCP socket套接字的多客户端/服务端通信原理及编程方法,对该程序进行改编,编写支持客户端到客户端的通信程序,要求信息通过服务器中转。
提示:客户登陆到服务器,服务器接收连接请求后会返回一个新的套接字,以用来与该客户通信。同时,服务器会派发新的服务线程来处理与该客户的通信逻辑。
客户A向客户B发送消息,实质是客户A通过与服务器连接的套接字将消息发送到服务器,服务器的服务线程从连接的套接字SocketA中读取出该消息,并将该消息通过与客户B连接的套接字SocketB转发给客户B。
5. 在第4步的程序基础上,实现并行通信模式
提示: 客户端发送、接收消息可以使用不同的线程。
6. 实现端到端的文件传输
提示:客户端A读取本地文件字节流,通过套接字将其发送至服务器,服务器将文件字节流转发至客户端B,客户端B从套接字中读取字节流,写入到本地文件。
7. 对以上功能添加图形界面,采用Swing容器及事件处理机制(选做)
———————————————————————————————————————————————————————————————————————
浙公网安备 33010602011771号