第十六章网络编程

上传人:re****.1 文档编号:569454737 上传时间:2024-07-29 格式:PPT 页数:18 大小:87KB
返回 下载 相关 举报
第十六章网络编程_第1页
第1页 / 共18页
第十六章网络编程_第2页
第2页 / 共18页
第十六章网络编程_第3页
第3页 / 共18页
第十六章网络编程_第4页
第4页 / 共18页
第十六章网络编程_第5页
第5页 / 共18页
点击查看更多>>
资源描述

《第十六章网络编程》由会员分享,可在线阅读,更多相关《第十六章网络编程(18页珍藏版)》请在金锄头文库上搜索。

1、JAVAJAVA语言程序设计语言程序设计语言程序设计语言程序设计第十六章第十六章第十六章第十六章 网络编程网络编程网络编程网络编程西北第二民族学院计算机科学与技术系西北第二民族学院计算机科学与技术系研究员研究员 王伦津王伦津网络基础知识网络基础知识计算机网络是利用通信设备和线路将地理位置不同、功能独立计算机网络是利用通信设备和线路将地理位置不同、功能独立的多个计算机系统相互连接起来,以实现资源共享和信息交换的多个计算机系统相互连接起来,以实现资源共享和信息交换的系统体系。的系统体系。1977年国际标准化组织年国际标准化组织ISO提出一个试图使各种计算机提出一个试图使各种计算机 在世界范围内互相

2、在世界范围内互相连成网的标准框架,即开放系统互连基本参考模型连成网的标准框架,即开放系统互连基本参考模型OSI/RM(Open Sysytems Interconnection Reference Model),简称,简称OSI。1983年正式年正式成为国际标准。成为国际标准。计算机的开放系统互联模型计算机的开放系统互联模型OSI共分共分7个层次:物理层、数据链路个层次:物理层、数据链路层、网络层、传输层、会话层、表示层和应用层,在不同的层次有层、网络层、传输层、会话层、表示层和应用层,在不同的层次有不同的软硬件工作。其中传输层以下(含运输层)称为底层,仅负不同的软硬件工作。其中传输层以下(含

3、运输层)称为底层,仅负责网络上信息的无误传输。其余为高层主要解决数据传输管理、用责网络上信息的无误传输。其余为高层主要解决数据传输管理、用户信息的语法表示以及应用进程经常使用的功能。户信息的语法表示以及应用进程经常使用的功能。TCP/IP协议协议TCP/IP(Transmission Control Protocol /Internet Protocol)协议是)协议是Internet的基础和核心。主要功能是提供点的基础和核心。主要功能是提供点对点的通信机制。从网络通信的角度看,对点的通信机制。从网络通信的角度看,Internet是一个用是一个用TCP/IP协议把各个国家、各个部门、各种机构的

4、内部网络连协议把各个国家、各个部门、各种机构的内部网络连接起来的超级数据通信网。接起来的超级数据通信网。为了支持点对点通信,每个节点要有一个像电话号码一样的唯一的地为了支持点对点通信,每个节点要有一个像电话号码一样的唯一的地址称为址称为IP地址。它是一个地址。它是一个32位的二进制数。由于不便于记忆将此地址位的二进制数。由于不便于记忆将此地址表示成表示成4个十进制数,各取个十进制数,各取0-255的值。每个值之间用点的值。每个值之间用点 “.”分隔。分隔。为了进一步方便使用,人们给每个节点都起一个名字,把名字为了进一步方便使用,人们给每个节点都起一个名字,把名字与与IP地址建立一个对应关系,这

5、就是域名系统(地址建立一个对应关系,这就是域名系统(DNS),有),有了它,凡域名空间有定义的域名都可以有效地转换成了它,凡域名空间有定义的域名都可以有效地转换成IP地址。地址。Internet 采用客户机采用客户机/服务器方式访问资源,当用户在共享某服务器方式访问资源,当用户在共享某个个Internet资源时,有两个独立的程序协同服务。这两个程序资源时,有两个独立的程序协同服务。这两个程序运行在不同的计算机上,通常把提供资源的计算机叫做服务器,运行在不同的计算机上,通常把提供资源的计算机叫做服务器,把使用资源的计算机叫做客户机。由于在把使用资源的计算机叫做客户机。由于在Internet上用户

6、往往上用户往往不知道究竟是哪台计算机提供了资源,因而客户机、服务器指不知道究竟是哪台计算机提供了资源,因而客户机、服务器指的是软件,即客户程序和服务程序。的是软件,即客户程序和服务程序。当用户使用当用户使用Internet功能时,首先启动客户机,通过有关功能时,首先启动客户机,通过有关命令告知服务器进行连接以完成某种操作,而服务器则按命令告知服务器进行连接以完成某种操作,而服务器则按照此要求提供相应的服务。照此要求提供相应的服务。客户机与服务器客户机与服务器URL统一资源定位标志统一资源定位标志在在WWW上,每一信息资源都有统一且唯一的地址,该地上,每一信息资源都有统一且唯一的地址,该地址就叫

7、址就叫URL (Uniform Resource Locator),它是,它是WWW的统一资源定位标志。的统一资源定位标志。URL由由4 部分组成;资源类型、存部分组成;资源类型、存放资源的主机域名、资源文件名和端口。放资源的主机域名、资源文件名和端口。例如,例如,http:/WWW:80/top.html其中其中 http 表示该资源类型是超文本信息表示该资源类型是超文本信息 WWW 是清华大学的主机域名是清华大学的主机域名 80 为为HTTP协议的端口号协议的端口号 top.html 为资源文件名为资源文件名HTTP协议默认端口号是协议默认端口号是80,FTP协议默认端口号是协议默认端口号

8、是21 URL类及其构造方法类及其构造方法要使用要使用URL进行通信,就要使用进行通信,就要使用URL类创建其对象,通过类创建其对象,通过引用引用URL类定义的方法完成网络通信。创建类定义的方法完成网络通信。创建URL类对象要类对象要使用使用包中提供的包中提供的.URL类的构造方法。类的构造方法。URL类的构造方法类的构造方法功能说明功能说明public URL(String str)使用使用URL字符串创建字符串创建URL对象对象public URL(String protocol,String host,String file)通过指定协议名、主机名、文件名,端口通过指定协议名、主机名、文

9、件名,端口使用默认值,创建使用默认值,创建URL对象对象public URL(String protocol,String host,String port,String file)通过指定协议名、主机名、文件名和端口通过指定协议名、主机名、文件名和端口号,创建号,创建URL对象对象public URL(URL content,String str)通过在已知的通过在已知的URL路径上增加细节的办法路径上增加细节的办法创建创建URL对象对象URL类构造方法类构造方法URL 类类功能说明功能说明int getPort()获得端口号获得端口号,如果端口没有设置,返回如果端口没有设置,返回-1Str

10、ing getProtocol()获得协议名,如果协议没有设置,返回获得协议名,如果协议没有设置,返回nullString getHost()获得主机名,如果主机没有设置,返回获得主机名,如果主机没有设置,返回nullString getFile()获得文件名,如果文件没有设置,返回获得文件名,如果文件没有设置,返回nullBoolean equals(Object obj)与指定的与指定的URL对象对象obj 进行比较,如果相同进行比较,如果相同返回返回true,否则返回否则返回false Final InputStreamOpenStream()获得一个输入流,若获取失败,则抛出一个获得一

11、个输入流,若获取失败,则抛出一个java.io.Exception异常异常String toString()将此将此URL对象转换为字符串的形式对象转换为字符串的形式URL 类的方法类的方法import .*;import java.io.*;public class NetUrlSite16_1 public static void main(String args) if(args.length1) System.out.println(没有给出没有给出URL); System.exit(1); else for(int i=0;iargs.length;i+) urlSite(argsi

12、); public static void urlSite(String urlname) String s; URL url=null; InputStream urlstream=null; try url=new URL(urlname); catch(Exception e) System.out.println(URL名名字错误字错误 ); try urlstream=url.openStream(); DataInputStream dat=new DataInputStream(urlstream); while(s=dat.readLine()!=null) System.ou

13、t.println(s); catch(IOException e) System.out.println(URL文文件打开错误件打开错误); URLConnection类类使用使用URL类可以很简单地获得信息,但如果在获取到信息的同时还能向远类可以很简单地获得信息,但如果在获取到信息的同时还能向远程的计算机节点传送信息,就需要使用程的计算机节点传送信息,就需要使用URLConnection类。类。创建创建URLConnection类的对象,先要创建一个类的对象,先要创建一个URL对象,然后调用该对象的对象,然后调用该对象的openConnection()方法就会返回一个对应方法就会返回一个对

14、应URL地址的地址的URLConnection对象对象URL url=new URL(“http:/”);/创建创建URL对象对象URLConnection connect=url.openConnection();/创建链接通道创建链接通道建立输入建立输入/输出流输出流 URLConnection类不仅可以使用类不仅可以使用getInputStream()方法获方法获得得URL节点的信息,还可以采用节点的信息,还可以采用getOutputStream()方法向方法向URL节点处传送节点处传送信息。在建立信息。在建立URLConnection类对象的同时就已经在本级和类对象的同时就已经在本级和

15、URL节点之上建节点之上建立了一条立了一条HTTP通道。通道。HTTP是一个一次连接协议,发送信息之前要附加确认是一个一次连接协议,发送信息之前要附加确认双方身份的信息。例双方身份的信息。例 DataInputStream datain=new DataInputStream(connect.getInputStream();import .*;import java.io.*;public class NetConnect16_2 public static void main(String args) String urlname=file:/c:/jdk/Test.java; Strin

16、g s,x; URL url=null; URLConnection conn=null; OutputStream out=null; InputStream in=null; try url=new URL(urlname); conn=url.openConnection(); conn.setDoOutput(true); catch(Exception e) System.out.println(URL名字错误名字错误 ); try in=conn.getInputStream(); x=conn.getContent(); DataInputStream dat=new DataI

17、nputStream(in); while(s=dat.readLine()!=null) System.out.println(s); dat.close(); catch(Exception e) System.out.println(URL文件打开错误文件打开错误); Socket 通信通信网络上计算机的任何一个应用程序都可以通过网络上计算机的任何一个应用程序都可以通过Socket与其与其它计算机进行通信。它计算机进行通信。Socket是通信端点的一种抽象,它提是通信端点的一种抽象,它提供了一种发送和接收数据的机制,在供了一种发送和接收数据的机制,在Windows Socket 中中有两

18、种形式,数据报有两种形式,数据报Socket和流式和流式Socket,本章只介绍流,本章只介绍流式式Socket,它采用,它采用TCP作为传输协议。作为传输协议。Socket(套接字)是(套接字)是TCP/IP的变成接口,即利用的变成接口,即利用Socket提供的一组提供的一组API就可以编程实现就可以编程实现TCP/IP协议。在协议。在JAVA中,中,Socket通信所采用的流式套接字通信方式,使使用通信所采用的流式套接字通信方式,使使用TCP协协议,实现客户议,实现客户/服务器之间双向通信。服务器之间双向通信。Socket称为称为“套接字套接字”,是指在两台计算机上运行的两,是指在两台计算

19、机上运行的两个程序之间的一个双向通信的链接点,而每一端称为一个程序之间的一个双向通信的链接点,而每一端称为一个个Socket,它提供一种面向连接的可靠的数据传输方式,它提供一种面向连接的可靠的数据传输方式,它能保证发送的数据按顺序无重复的到达目的地。它能保证发送的数据按顺序无重复的到达目的地。Socket的通信机制的通信机制Socket所要完成的通信就是基于连接的通信,建立连接所要完成的通信就是基于连接的通信,建立连接的程序分别运行在客户端和服务器端。的程序分别运行在客户端和服务器端。1、建立连接:首先客户端程序申请连接,而服务器端、建立连接:首先客户端程序申请连接,而服务器端程序监听所有端口

20、,判断是否有客户程序的服务请求,程序监听所有端口,判断是否有客户程序的服务请求,当客户程序请求和某端口连接时,服务器就将当客户程序请求和某端口连接时,服务器就将Socket连接到该端口上,此时服务器和客户程序之间建立了连接到该端口上,此时服务器和客户程序之间建立了一个专用的虚拟连接。一个专用的虚拟连接。2、数据通信:客户程序可以向、数据通信:客户程序可以向Socket写入请求,服写入请求,服务器程序处理请求并把处理结果通过务器程序处理请求并把处理结果通过Socket送回。送回。3、拆除连接:通信结束,将所建的虚拟连接拆除、拆除连接:通信结束,将所建的虚拟连接拆除。具体实施步骤具体实施步骤1、创

21、建、创建ServerSocket类对象和类对象和Socket类对象类对象创建一个创建一个ServerSocket对象就创建了一个监听,由于一台服务器对象就创建了一个监听,由于一台服务器可监听多台客户机,因此要指定端口号,以区别不同的服务请求。可监听多台客户机,因此要指定端口号,以区别不同的服务请求。ServerSocket Listen=new ServerSocket(4321);为了能够随时监听客户端的请求,可以引用为了能够随时监听客户端的请求,可以引用ServerSocket对象的对象的accept()方法方法Socket line=Listen.accept();创建创建Socket对

22、象用于使用端口号与服务器建立连接,服务器在捕获对象用于使用端口号与服务器建立连接,服务器在捕获到客户端的请求时,根据端口号来完成给定的服务。到客户端的请求时,根据端口号来完成给定的服务。Socket service=new Socket(“Email server”,4321);其中其中“Email server”是指服务器的主机的名称对应的地址,是指服务器的主机的名称对应的地址,4321是指服务的端口号。是指服务的端口号。2、发送和接收流式数据、发送和接收流式数据Socket对象创建成功后,就可以在客户机与服务器之间建立一个连对象创建成功后,就可以在客户机与服务器之间建立一个连接,并通过这个

23、连接在两个端口之间传送数据。接,并通过这个连接在两个端口之间传送数据。OutputStream translate=service.getOutputStream(); /输出流输出流InputStream receive=service.getInputStream();/输入流输入流Translate.write(receive.read(); /将读出的数据写回将读出的数据写回3、拆除连接、拆除连接 通信完成后,由应用程序断开服务器和客户端的虚拟连接,通信完成后,由应用程序断开服务器和客户端的虚拟连接,释放所占用的系统资源,释放所占用的系统资源,java 采用采用close() 方法断开

24、连接。方法断开连接。对客户端:对客户端: socket.close();对服务器端:对服务器端:server.close();构造方法构造方法功能说明功能说明ServerSocket(int port)在指定的端口创建一个在指定的端口创建一个ServerSocket对象对象ServerSocket(int port,int count)在指定的端口创建一个在指定的端口创建一个ServerSocket对象并说对象并说明服务器所能支持的最大连接数明服务器所能支持的最大连接数Socket(InetAddress address,int port)使用指定地址和端口创建一个使用指定地址和端口创建一个S

25、ocket对象对象Socket(InetAddress address,int port,boolean stream)使用指定地址和端口创建一个使用指定地址和端口创建一个Socket对象(若对象(若布尔量为布尔量为true ,则表示采用流式通信方式),则表示采用流式通信方式)Socket(String host,int port)使用指定主机和端口创建一个使用指定主机和端口创建一个Socket对象对象Socket(String host,int port,boolean stream)使用指定主机和端口创建一个使用指定主机和端口创建一个Socket对象(若对象(若布尔量为布尔量为true ,

26、则表示采用流式通信方式),则表示采用流式通信方式)Socket 类与类与ServerSocket 类的构造方法类的构造方法URL与与 Socket 通信的区别通信的区别Socket 通信方式是在服务器端运行通信程序,不停地监听客户通信方式是在服务器端运行通信程序,不停地监听客户端的连接请能够使通信发求,主动等待客户端的请求服务,当客端的连接请能够使通信发求,主动等待客户端的请求服务,当客户端提出请求时,马上连接并通信;而户端提出请求时,马上连接并通信;而URL进行通信时,是被动进行通信时,是被动等待客户端的请求。等待客户端的请求。Socket通信方式是服务器可以同时与多个客户端进行相互通信,通

27、信方式是服务器可以同时与多个客户端进行相互通信,而而URL通信方式是服务器只能与一个客户进行通信。通信方式是服务器只能与一个客户进行通信。UDP通信UDP通信是一种无连接的数据报通信,采用数据报通信协议通信是一种无连接的数据报通信,采用数据报通信协议UDP(User Datagram Protocol) 。按照这个协议。两个系。按照这个协议。两个系统在进行通信时,不要建立连接,优点是它发送数据的速度统在进行通信时,不要建立连接,优点是它发送数据的速度很快,而缺点是数据较易丢失,例如红外线数据传输就是采很快,而缺点是数据较易丢失,例如红外线数据传输就是采用用UDP的传输协议。的传输协议。练习与习

28、题练习与习题1、什么是、什么是TCP/IP协议?它有什么特点?协议?它有什么特点?2、一个完整的、一个完整的URL的地址由哪几部分组成?的地址由哪几部分组成?3、说明并尝试通过、说明并尝试通过URL连续从服务器上读取一个文本文件,并连续从服务器上读取一个文本文件,并显示该文本文件的内容。显示该文本文件的内容。4、简述、简述Socket通信机制,说明客户端如何与服务器进行连接。通信机制,说明客户端如何与服务器进行连接。5、简述、简述URL与与Socket通信的区别。通信的区别。6、仿照本章例、仿照本章例13_3,给定地址给定地址192.168.1.10和端口号和端口号5000来来编写服务器端程序和客户端程序,通过编写服务器端程序和客户端程序,通过Socket套接字连接方式套接字连接方式使得客户端向服务器发送信息时,服务器显示连接成功。使得客户端向服务器发送信息时,服务器显示连接成功。

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 幼儿/小学教育 > 小学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号