2018/12/3 面向对象与多线程综合实验-网络编程 教师:段鹏飞
实验5-实验目的 了解Java网络编程基础知识; 掌握java.net包中关于网络的基本类及其属性和方法; 掌握基于Socket的客户和服务器编程方法。
实验内容 编写程序,将前面课程所编写的档案管理系统从单机版改编成为客户机/服务器模式,实现档案文件在客户机和服务器之间的上传、下载。 完成功能: 1、建立服务器端程序,不需界面,只有服务器可以访问数据库。 2、客户端选择一个文件上传后,客户端与服务器建立连接,将文件发送到服务器,服务器将文件接收并保存,同时将文件信息和保存的路径写入数据库。
实验内容 3、客户端可以通过服务器端获取文件的列表信息,并在客户端界面上进行列表显示。 4、用户可以通过客户端文件列表进行文件下载、删除等操作(下载时,客户端将文件ID发给服务器,服务器通过ID在数据库中查找到相应的文件路径信息,然后读取文件,通过网络将文件发送给客户端)。 5、客户端通过服务器完成对用户的增、删、查、改。 6、在服务器端实现多线程操作。
Socket应用 客户端与服务器端的实现 服务器端 客户端
为每个客户的连接(Socket)分配一个线程,让其独立处理 两种实现方式 作为java.lang.Thread类的子类 多线程的服务器实现 为每个客户的连接(Socket)分配一个线程,让其独立处理 两种实现方式 作为java.lang.Thread类的子类 实现java.lang.Runnable接口 Client 1 Socket Port 7 me.whut.edu.cn ServerSocket 1 3 2 1 Thread 1 2 Client n Socket 3 Thread n
Socket应用 多线程的服务器实现-实例 ServerSocket s = new ServerSocket(5432); boolean listening = true; while (listening) new ServerThread(s.accept()).start(); s.close(); class ServerThread extends Thread { … … public void run() { }
2018/12/3 谢谢