Download presentation
Presentation is loading. Please wait.
1
2018/12/3 面向对象与多线程综合实验-网络编程 教师:段鹏飞
2
实验5-实验目的 了解Java网络编程基础知识; 掌握java.net包中关于网络的基本类及其属性和方法; 掌握基于Socket的客户和服务器编程方法。
3
实验内容(必做) 编写程序,将前面课程所编写的档案管理系统从单机版改编成为客户机/服务器模式,实现档案文件在客户机和服务器之间的上传、下载。 完成功能: 1、建立服务器工程 2、客户端选择一个文件上传后,客户端与服务器建立连接,将文件发送到服务器,服务器将文件接收并保存,同时将文件信息和保存的路径写入数据库。 3、用户可以通过客户端文件列表进行文件下载操作(下载时,客户端将文件ID发给服务器,服务器通过ID在数据库中查找到相应的文件路径信息,然后读取文件,通过网络将文件发送给客户端)。
4
实验内容(选做) 1、客户端不能连接数据库,只有通过服务器端程间接访问数据库。 2、客户端通过服务器端获取文件的列表信息,并在客户端界面上进行列表显示。 3、客户端通过服务器完成对用户的增、删、查、改。 提示: 1、在网络这一块,开一个端口就好了,网络通信采用“请求-应答”的思想,也就是说,客户端向服务器提交一个请求,服务器生成相应的结果,返回给客户端。 2、采用对象串行化的思想,定义一个类进行数据传输。(参考课本235页)
5
对象串行化(仅供参考)
6
Socket应用 客户端与服务器端的实现 服务器端 客户端
7
8.5 Socket . 8.5 Socket 定义数据成员 定义数据成员 1111 创建Socket实例 创建服务器(端口号)
waiting for user 服务器等待 网络连接 建立socket流 读socket流 (接收并显示) 建立socket流 connetcting client... login: 向用户发出一个字符串 送用户名给 服务器 java 读客户 端信息 User :java 读socket流 Login successful 提示用户登录成功 关闭流
8
Socket应用 me.whut.edu.cn ServerSocket Localhost Socket OutputStream
InputStream Socket应用 ServerSocket s = null; String hello = “Hello World!”; try { s = new ServerSocket(5432); } catch(IOException e) { System.out.println(e); System.exit(1); } while(true) { Socket cs = s.accept(); OutputStream out = cs.getOutputStream(); DataOutputStream dos = new DataOutputStream(out); dos.writeUTF(hello); out.close(); cs.close(); } catch(IOException e) { System.out.println(e); } 监听端口 接收连接 打开输出流 写入输出流 关闭输出流 关闭连接
9
Socket应用 对客户端对Socket进行读写-实例 me.whut.edu.cn ServerSocket Localhost
OutputStream InputStream Socket应用 对客户端对Socket进行读写-实例 import java.net.*; import java.io.*; public class SimpleClient { public static void main(String args[]) { Socket s = new Socket(“me.whut.edu.cn”, 5432); InputStream in = s.getInputStream(); DataInputStream dis = new DataInputStream(in); String st = dis.readUTF(); System.out.println(st); in.close(); s.close(); } 建立连接 打开输入流 读取输入流 关闭输入流 关闭连接
10
2018/12/3 谢谢
Similar presentations