190 likes | 390 Views
第 4 讲 远程文件传输. 一、聊天程序介绍 二、远程文件传输程序介绍. 一、聊天程序介绍. 功能简介 模拟二个人聊天的程序,任何一端都能发送和接收字符信息; 当任何一方输入 “ Exit” 时,聊天结束,退出应用程序。. 总体流程图( TCP ). 类功能介绍 ChatSend.java -发送消息 ChatReceive.java -接收消息 ChatClient.java -与服务器端建立 Socket 连接并启动发送线程和接收线程 ChatServer.java -接受客户端的请求,并建立 Socket 连接,同时也启动发送线程和接收线程。. 发送线程.
E N D
第4讲 远程文件传输 一、聊天程序介绍 二、远程文件传输程序介绍
一、聊天程序介绍 • 功能简介 • 模拟二个人聊天的程序,任何一端都能发送和接收字符信息; • 当任何一方输入 “Exit”时,聊天结束,退出应用程序。
类功能介绍 • ChatSend.java-发送消息 • ChatReceive.java-接收消息 • ChatClient.java-与服务器端建立Socket连接并启动发送线程和接收线程 • ChatServer.java-接受客户端的请求,并建立Socket连接,同时也启动发送线程和接收线程。
发送线程类 public class ChatSend extends Thread{ ……//构造方法初始化dout public void run(){ while(true){ String msg = 从键盘接收的信息; dout.writeUTF(msg); if(聊天结束) break; } } }
接收线程类 public class ChatReceive extends Thread{ ……//构造方法初始化din public void run(){ while(true){ String msg = din.readUTF(); if(聊天结束) {关闭socket; break;} } } }
ChatClient.java--客户端程序 Socket st = new Socket(“localhost”, 4321); DataOutputStream dout = …… ; DataInputStream din = …… ; ChatSend cs1 = new ChatSend(dout); cs1.start(); ChatReceive cr1 = new ChatReceive(din); cr1.start();
ChatServer.java--服务器端程序 ServerSocket ss = new ServerSocket(4321); Socket socket = ss.accept(); //得到与socket相关的输入/出流din和dout; ChatSend cs2 = new ChatSend(dout); cs2.start(); ChatReceive cr2 = new ChatReceive(din); cr2.start();
思考 • 如何为聊天程序扩展图形界面? • 如何把使用TCP协议改为使用UDP协议? • 什么时候关闭Socket比较合适?是在发送 “Exit”后还是接收到 “Exit”后? • 如何在聊天时发送表情? • 如何把二人聊天扩展为聊天室(书上P69)?
二、远程文件传输程序介绍 • 功能简介 • 实现在任意二台主机之间传送文件 • 必须有图形界面
例如 • RTFSend.java--用于发送文件 • RTFReceive.java--用于接收文件
思考 • 如何实现多个文件的同时传输? • 如何实现视频聊天和语音聊天?如书上第8章。 • 在完成聊天程序和远程文件传输程序后,可以考虑类似QQ的即时聊天软件?