第十六章 网络 ■课程内容:客户/服务端通信、简单的客户/服务应用、 多客户服务、Applet客户、在网络上发送和接收对象、 URL类、从网络上或从Web服务器接收文件 ■授课时间:2006/06/08 ■教学目标:了解客户/服务端通信;学习如何实现简单 的客户/服务应用、对网上资源的访问;以及通过网终 对文件的访问和操作 :重点:客户/服务端通信、简单的客户/服务应用、多 客户服务、在网络上发送和接收对象及UL类的使用 ■教学方法:讲授 ■教学过程:(省略) ©2006计算机系杨群 All rights lefts reserved
©2006 计算机系 杨厚群 All rights & lefts reserved. 课程内容:客户/服务端通信、简单的客户/服务应用、 多客户服务、Applet客户、在网络上发送和接收对象、 URL类、从网络上或从Web服务器接收文件 授课时间:2006/06/08 教学目标:了解客户/服务端通信;学习如何实现简单 的客户/服务应用、对网上资源的访问;以及通过网络 对文件的访问和操作 重点:客户/服务端通信、简单的客户/服务应用、多 客户服务、在网络上发送和接收对象及URL类的使用 教学方法:讲授 教学过程:(省略) 第十六章 网络
客户服务端通信 服务器主机 客户 IVO数据流 一客户的套接字 客户套接字 Socket socket= Socket socket server.accept() new Socket(host,serverPort#) 服务器套接字8000 SeverSocket server new ServerSocket(8000); ©2006计算机系杨厚群 All rights lefts reserved
©2006 计算机系 杨厚群 All rights & lefts reserved. 客户/服务端通信 服务器主机 服务器套接字 8000 SeverSocket server = new ServerSocket(8000); 一客户的套接字 Socket socket = server.accept() 客户 客户套接字 Socket socket = new Socket(host, serverPort#) I/O 数据流
客户服务器编程 服务器 客户 int port=8000; int port=8000; DatalnputStream in; String host="localhost" DataOutputStream out; DatalnputStream in; ServerSocket server, DataOutputStream out: Socket socket: Socket socket; 连接请求 server =new ServerSocket(port); socket=server.accept(); socket=new Socket(host,port); in=new DatalnputStream in=new DatalnputStream (socket.getInputStream()); (socket.getInputStream()); out=new DataOutStream I/O out=new DataOutputStream (socket.getOutputStream()): 数据流 (socket.getOutputStream()); System.out.println(in.readDouble()); out.writeDouble(aNumber); out.writeDouble(aNumber); System.out.println(in.readDouble(); ©2006计算机系杨群 All rights lefts reserved
©2006 计算机系 杨厚群 All rights & lefts reserved. 客户/服务器编程 int port = 8000; DataInputStream in; DataOutputStream out; ServerSocket server; Socket socket; server =new ServerSocket(port); socket=server.accept(); in=new DataInputStream (socket.getInputStream()); out=new DataOutStream (socket.getOutputStream()); System.out.println(in.readDouble()); out.writeDouble(aNumber); int port = 8000; String host="localhost" DataInputStream in; DataOutputStream out; Socket socket; socket=new Socket(host, port); in=new DataInputStream (socket.getInputStream()); out=new DataOutputStream (socket.getOutputStream()); out.writeDouble(aNumber); System.out.println(in.readDouble()); 服务器 客户 连接请求 I/O 数据流
范例:客户服务器程序 客户向服务器发送数据。服务器接收数据,并 利用它们计算一个结果,然后把结果发回客户。 客户在控制台上显示结果。客户发送的是圆的 半径,得到的是圆的面积 Server Code Client Code 计算面积 半径 服务器 客户 面积 ©2006计算机系杨厚群 All rights lefts reserved
©2006 计算机系 杨厚群 All rights & lefts reserved. 范例:客户/服务器程序 客户向服务器发送数据。服务器接收数据,并 利用它们计算一个结果,然后把结果发回客户。 客户在控制台上显示结果。客户发送的是圆的 半径,得到的是圆的面积 Server Code Client Code 半径 服务器 客户 计算面积 面积
范例:为多客户服务 演示为多客户服务。对每个连接,服务器开始 一个新线程 Server for Multiple Clients 服务器 端口上的一个 一个客户的套 服务器套接字 一个客户的套 接字 接字 客户1 ● 客户n ©2006计算机系杨厚群 All rights&lefts reserved
©2006 计算机系 杨厚群 All rights & lefts reserved. 范例:为多客户服务 演示为多客户服务。对每个连接,服务器开始 一个新线程 Server for Multiple Clients 服务器 客户 1 . . . 客户 n 端口上的一个 服务器套接字 一个客户的套 接字 一个客户的套 接字
Applet客户 由于安全性限制,applet只能与装入它的主机 连接。因此,必须把HTML文件存放到服务器程 序运行的机器上 ©2006计算机系杨厚群 All rights lefts reserved
©2006 计算机系 杨厚群 All rights & lefts reserved. Applet客户 由于安全性限制,applet只能与装入它的主机 连接。因此,必须把HTML文件存放到服务器程 序运行的机器上
范例:创建applet客户 演示如何使用appleti登记学生。客户收集并向 服务器发送注册信息。服务器使用随机读写文 件数据流向数据文件中追加信息 Server Code Client Code ©2006计算机系杨群 All rights&lefts reserved
©2006 计算机系 杨厚群 All rights & lefts reserved. 范例:创建applet客户 演示如何使用applet登记学生。客户收集并向 服务器发送注册信息。服务器使用随机读写文 件数据流向数据文件中追加信息 Server Code Client Code
范例:在网络程序中传递对象 本例利用套接字上对象数据流改写前例“创建 applet客户”。程序并不是将姓名、街道、城 市、州和邮编等信息单独传达,而是将学生对 象作为一个整体进行传送 Server Code Client Code ©2006计算机系杨厚群 All rights lefts reserved
©2006 计算机系 杨厚群 All rights & lefts reserved. 范例:在网络程序中传递对象 本例利用套接字上对象数据流改写前例“创建 applet客户”。程序并不是将姓名、街道、城 市、州和邮编等信息单独传达,而是将学生对 象作为一个整体进行传送 Server Code Client Code
浏览HTML页面 m给出URL如http://www.sun.com, Web浏览器 就可以浏览HTL页面 ■HTTP(Hypertext Transfer Protocol)是Web 服务器和Internet之间进行通信的一个通用 标准。可以在Java applet中打开URL刘览Web 页面 ■URL是对Internet.上资源位置的描述。Java提 供java.net.URL类处理URLs. ©2006计算机系杨厚群 All rights lefts reserved
©2006 计算机系 杨厚群 All rights & lefts reserved. 浏览HTML页面 给出URL如 http://www.sun.com,Web浏览器 就可以浏览HTML页面 HTTP (Hypertext Transfer Protocol)是Web 服务器和 Internet 之间进行通信的一个通用 标准。可以在Java applet 中打开URL浏览Web 页面 URL是对Internet上资源位置的描述。Java提 供java.net.URL类处理URLs
创建一个URL实例 创建一个UL对象: try URL location new URL("http://www.sun.com"); catch (MalformedURLException e) {} ViewingWebPages ©2006计算机系杨厚群 All rights lefts reserved
©2006 计算机系 杨厚群 All rights & lefts reserved. 创建一个URL实例 创建一个URL 对象: try { URL location = new URL("http://www.sun.com"); } catch(MalformedURLException e) { } ViewingWebPages