《第十章Java网络编程.ppt》由会员分享,可在线阅读,更多相关《第十章Java网络编程.ppt(16页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、第十章第十章 JavaJava网络编程网络编程1l Applet:应用层的网络编程应用层的网络编程lJava的套接字(的套接字(Socket)编程:利用传输层(编程:利用传输层(TCP或或UDP)实现网络进程通信的编程。实现网络进程通信的编程。基于基于Socket的网络通信可以理解为一种客户端的网络通信可以理解为一种客户端/服服务器模式。务器模式。服务器端在指定的端口等待客户来连接。客户端在服务器端在指定的端口等待客户来连接。客户端在需要的时刻向服务器发出连接请求,一旦客户端连接上,需要的时刻向服务器发出连接请求,一旦客户端连接上,就按照设计的数据交换方法和格式进行数据传输。就按照设计的数据交
2、换方法和格式进行数据传输。10.1 Socket编程基本概念编程基本概念 服务器服务器客户端客户端210.2 使用使用TCP协议的协议的Socket编程编程 TCP是一种可靠的、基于连接的网络协议,当两个是一种可靠的、基于连接的网络协议,当两个网络进程准备基于网络进程准备基于TCP通信时,都必须首先建立各自的通信时,都必须首先建立各自的一个套接字一个套接字(Socket)。基于基于TCP的的Socket通讯过程如下:通讯过程如下:服务器建立套接字后,侦听来自网络的客户连接请求。服务器建立套接字后,侦听来自网络的客户连接请求。客户端通过套接字,指定服务器的客户端通过套接字,指定服务器的IP地址和
3、端口号,地址和端口号,便可与服务器进行通信。便可与服务器进行通信。3服务器端具体实现过程:服务器端具体实现过程:()()创建创建ServerSocket对象,指定服务器监听的对象,指定服务器监听的端口号端口号;()调用该()调用该ServerSocket对象对象的的accept方法方法等待客户的等待客户的连接;连接;()一旦有客户送来连接请求,()一旦有客户送来连接请求,accept方法就返回一个新方法就返回一个新的套接字对象(的套接字对象(Socket类对象);类对象);()通过该()通过该Socket对象,可以实现和客户端的对象,可以实现和客户端的通信通信.ServerS.Socket4客
4、户端具体实现过程:客户端具体实现过程:()创建一个()创建一个Socket类对象,指定所要连接服务器的类对象,指定所要连接服务器的IP地址和端口(服务器接受连接,该对象就建立);地址和端口(服务器接受连接,该对象就建立);()()通过该通过该Socket对象,实现和服务器的通信对象,实现和服务器的通信5Accept()创建创建ServerSocket对象对象 服务器服务器接收到客户连接请求接收到客户连接请求客户端客户端基于基于TCP的的Socket通讯过程通讯过程Accept方法返回方法返回一个一个Socket对象对象创建创建Socket对象对象连接请求连接请求通过该通过该Socket对象与服
5、务器交互对象与服务器交互通过该通过该Socket对象与客户端交互对象与客户端交互6ServerSocket server=new ServerSocket(1414);/监听本机的监听本机的1414端口端口System.out.println(Socket监听服务已经启动监听服务已经启动);System.out.println(正在等待客户端程序的连接正在等待客户端程序的连接);Socket socket=server.accept();/等待客户端的连接请求等待客户端的连接请求System.out.println(客户端已经成功连接客户端已经成功连接);PrintWriter out=new
6、 PrintWriter(socket.getOutputStream(),true);/通过通过PrintWriter 类类对象对象out向向Socket对象的输出流写数据对象的输出流写数据out.println(服务器说:你好!服务器说:你好!);out.close();/关闭输出流关闭输出流socket.close();server.close();/关闭关闭Socket连接连接服务器端代码服务器端代码Server.java例例1:服务器向客户端发送字符串:服务器向客户端发送字符串“你好你好”,客户端将接收到的字符串输出,客户端将接收到的字符串输出7Socket socket=new S
7、ocket(localhost,1414);/向向本地服务器的本地服务器的1414端口发出连接请求端口发出连接请求BufferedReader in;in=new BufferedReader(new InputStreamReader(socket.getInputStream();/通过通过BufferedReader类类对象对象in从从Socket对象的输入流中读数据对象的输入流中读数据String info=in.readLine();System.out.println(info);socket.close();/关闭连接关闭连接客户端代码客户端代码Client.java8例例2:客
8、户端可以与服务器端连续进行通信:客户端可以与服务器端连续进行通信ServerSocket server=new ServerSocket(1414);System.out.println(Socket监听服务已经启动监听服务已经启动);System.out.println(正在等待客户端程序的连接正在等待客户端程序的连接);Socket socket=server.accept();BufferedReader in;in=new BufferedReader(new InputStreamReader(socket.getInputStream();/通过通过BufferedReader类对
9、象类对象in从从Socket对象的输入流中读数据对象的输入流中读数据while(true)String info=in.readLine();if(info!=null)System.out.println(客户端客户端:+info);if(info.equals(close)in.close();socket.close();server.close();break;服务器端代码服务器端代码Server.java9Socket socket=new Socket(localhost,1414);PrintWriter out;out=new PrintWriter(socket.getOut
10、putStream(),true);/通过通过PrintWriter 类对象类对象out向向Socket对象的输出流写数据对象的输出流写数据BufferedReader serverin;serverin=new BufferedReader(new InputStreamReader(System.in);/通过通过BufferedReader类对象类对象serverin从从键盘上读数据键盘上读数据String str=;while(!str.equals(close)str=serverin.readLine();out.println(str);out.close();serverin.
11、close();socket.close();客户端代码客户端代码Client.java1010.3 使用使用UDP协议的协议的Socket编程编程 UDP协议通信特点:协议通信特点:u通信前不需要预先建立连接,速度快,不能保证所有数据通信前不需要预先建立连接,速度快,不能保证所有数据都能送到目的地;都能送到目的地;u每次发送的数据独立路由,都需要加上对方的每次发送的数据独立路由,都需要加上对方的IP地址和端地址和端口口uJava支持支持UDP的两个主要的类:的两个主要的类:.DatagramSocket,数据报套接字,可用于发送和接收数据报数据报套接字,可用于发送和接收数据报 .Datagr
12、amPacket 数据报数据报例:基于例:基于UDP的的Socket通信程序通信程序11URL URL URL即统一资源定位器即统一资源定位器(Uniform Resource Locator)Uniform Resource Locator),用来表示用来表示InternetInternet上的资源,如上的资源,如webweb页、图片等。页、图片等。URLURL的基本表示方法是:的基本表示方法是:协议协议:/:/主机名主机名:端口号端口号/文件名文件名 下面是几个合法的下面是几个合法的URLURL例子:例子:http:/www.http:/cn/download/index./downloa
13、d/index.htm htm http:/www.http:/cn:8080/download/index.:8080/download/index.htmhtm ftp:/local/demo/readme.txtftp:/local/demo/readme.txt10.4 URL及及Java的的URL类类12URL类类(.URL.URL )Java Java的的URLURL类封装了使用统一资源定位器访问一个类封装了使用统一资源定位器访问一个InternetInternet资源的方法。资源的方法。创建一个创建一个URLURL对象对象:URL url=new URL(“http:/”);13
14、try URL url=new URL(“http:/”);BufferedReader d;d=new BufferedReader(new InputStreamReader(url.openStream();/打开打开URL的输入流,并将其从字节流转为字符流的输入流,并将其从字节流转为字符流String inputLine;while(inputLine=d.readLine()!=null)System.out.println(inputLine);d.close();catch(Exception e)例:下列程序可以看到中国矿业大学主页的例:下列程序可以看到中国矿业大学主页的htm
15、lhtml文件代码文件代码(urlhtmlurlhtml.java).java)14 JSPJSP即即JavaServerPageJavaServerPage,它是它是JavaJava开发中最具代表性的开发中最具代表性的WebWeb开发的解决方案。它具备开发的解决方案。它具备JavaJava的优点:稳定、安全、可的优点:稳定、安全、可移植性好。移植性好。JSPJSP开发环境:可用开发环境:可用DreamWeaverDreamWeaver+Tomcat+Tomcat DreamWeaverDreamWeaver编写编写JSPJSP代码,代码,TomcatTomcat负责运行负责运行jspjsp文件文件 目前在企业中,使用的服务器大多数是目前在企业中,使用的服务器大多数是BEABEA公司的公司的WebLogicWebLogic和和IBMIBM公司的公司的WebSphereWebSphere。而而TomcatTomcat一般适合小一般适合小型企业或个人使用。型企业或个人使用。JavaBeanJavaBean实际上就是编译好的实际上就是编译好的.classclass文件,在文件,在JSPJSP中可中可以调用以调用JavaBeanJavaBean。10.5 JSP15例:一个简单的例:一个简单的JSP程序,用于显示当前日期程序,用于显示当前日期 Now time is:16