第十六章 网络 ■课程内容:客户/服务端通信、简单的客户/服务应用、 多客户服务、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 端口上的一个 服务器套接字 一个客户的套 接字 一个客户的套 接字