1 / 19

第 4 讲 远程文件传输

第 4 讲 远程文件传输. 一、聊天程序介绍 二、远程文件传输程序介绍. 一、聊天程序介绍. 功能简介 模拟二个人聊天的程序,任何一端都能发送和接收字符信息; 当任何一方输入 “ Exit” 时,聊天结束,退出应用程序。. 总体流程图( TCP ). 类功能介绍 ChatSend.java -发送消息 ChatReceive.java -接收消息 ChatClient.java -与服务器端建立 Socket 连接并启动发送线程和接收线程 ChatServer.java -接受客户端的请求,并建立 Socket 连接,同时也启动发送线程和接收线程。. 发送线程.

theo
Télécharger la présentation

第 4 讲 远程文件传输

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 第4讲 远程文件传输 一、聊天程序介绍 二、远程文件传输程序介绍

  2. 一、聊天程序介绍 • 功能简介 • 模拟二个人聊天的程序,任何一端都能发送和接收字符信息; • 当任何一方输入 “Exit”时,聊天结束,退出应用程序。

  3. 总体流程图(TCP)

  4. 类功能介绍 • ChatSend.java-发送消息 • ChatReceive.java-接收消息 • ChatClient.java-与服务器端建立Socket连接并启动发送线程和接收线程 • ChatServer.java-接受客户端的请求,并建立Socket连接,同时也启动发送线程和接收线程。

  5. 发送线程

  6. 发送线程类 public class ChatSend extends Thread{ ……//构造方法初始化dout public void run(){ while(true){ String msg = 从键盘接收的信息; dout.writeUTF(msg); if(聊天结束) break; } } }

  7. 接收线程

  8. 接收线程类 public class ChatReceive extends Thread{ ……//构造方法初始化din public void run(){ while(true){ String msg = din.readUTF(); if(聊天结束) {关闭socket; break;} } } }

  9. 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();

  10. 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();

  11. 思考 • 如何为聊天程序扩展图形界面? • 如何把使用TCP协议改为使用UDP协议? • 什么时候关闭Socket比较合适?是在发送 “Exit”后还是接收到 “Exit”后? • 如何在聊天时发送表情? • 如何把二人聊天扩展为聊天室(书上P69)?

  12. 二、远程文件传输程序介绍 • 功能简介 • 实现在任意二台主机之间传送文件 • 必须有图形界面

  13. 发送界面

  14. 接收界面

  15. 总体流程图

  16. 发送文件

  17. 接收文件

  18. 例如 • RTFSend.java--用于发送文件 • RTFReceive.java--用于接收文件

  19. 思考 • 如何实现多个文件的同时传输? • 如何实现视频聊天和语音聊天?如书上第8章。 • 在完成聊天程序和远程文件传输程序后,可以考虑类似QQ的即时聊天软件?

More Related