Java网络程序设计基础_第1页
Java网络程序设计基础_第2页
Java网络程序设计基础_第3页
Java网络程序设计基础_第4页
Java网络程序设计基础_第5页
已阅读5页,还剩15页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、Software Engineering第第1章章 Java网络程序设计基础网络程序设计基础 1.1 网络基础知识1.2 网络程序设计基础1.3 Java与网络通信Network ProgrammingSoftware Engineering1.1 网络基础知识网络基础知识网络协议是分层的,不同层具有各自不同的协议。不同层具有各自不同的协议。Network ProgrammingSoftware Engineering1.1.1 TCP/IP参考模型与参考模型与OSI比较比较nTCP/IPTCP/IP参考模型参考模型n实际的工业标准实际的工业标准nOSIOSI比较:国际化标准模型比较:国际化标

2、准模型Network ProgrammingSoftware Engineering1.1.2 TCP/IP参考模型及协议参考模型及协议Network ProgrammingTCPUDP用户进程用户进程用户进程用户进程ICMPIPIGMPARP硬件接口RARP媒介传输层应用层网络层链路层Software Engineering1.1.2 TCP/IP参考模型及协议参考模型及协议Network Programming网络接口层网络接口层为网络互联层提供访问接口,使其能够传递为网络互联层提供访问接口,使其能够传递IP数据包。数据包。网际层(网际层(IP协议)协议)是整个参考模型的核心。功能是把是整

3、个参考模型的核心。功能是把IP数据包发送到目标主机。数据包发送到目标主机。具备连接异构网的功能。采用具备连接异构网的功能。采用IP(Internet Protocol)协议,规定数据包的格式,)协议,规定数据包的格式,及为数据包寻找路由的流程。及为数据包寻找路由的流程。传输层(传输层(TCP和和UDP协议)协议)功能是使源主机和目标主机上的进程可以进行会话。功能是使源主机和目标主机上的进程可以进行会话。TCP(Transmission Control Protocol)协议:传输控制协议,是一种面向连接)协议:传输控制协议,是一种面向连接的,可靠的协议。应用层的大多数协议都建立在的,可靠的协议

4、。应用层的大多数协议都建立在TCP协议的基础上。协议的基础上。UDP(User Datagram Protocol)协议:用户数据报协议,是一种无连接的,不)协议:用户数据报协议,是一种无连接的,不可靠的协议。主要适用于不需要对报文进行排序和流量控制的场合。可靠的协议。主要适用于不需要对报文进行排序和流量控制的场合。Software Engineering1.1.2 TCP/IP参考模型及协议参考模型及协议n应用层(基于应用层(基于TCPTCP协议的应用层协议)协议的应用层协议)nHTTPHTTP(Hyper Text Transfer ProtocolHyper Text Transfer

5、Protocol)协议:超文本传输协议)协议:超文本传输协议 nFTPFTP(Files Transfer ProtocolFiles Transfer Protocol)协议:文件传输协议)协议:文件传输协议nPOP3POP3(Post Office Protocol-3Post Office Protocol-3)协议:邮局协议)协议:邮局协议nSMTPSMTP(Simple Mail Transfer ProtocolSimple Mail Transfer Protocol)协议)协议nIMAP4IMAP4(Internet Message Access Protocol-4Inter

6、net Message Access Protocol-4)协议:消息访问协议,)协议:消息访问协议,允许用户访问和操纵远程程序器上的邮件和邮件文件夹。允许用户访问和操纵远程程序器上的邮件和邮件文件夹。n应用层(基于应用层(基于UDPUDP协议的应用层协议)协议的应用层协议)nSNMPSNMP(Simple Network Management ProtocolSimple Network Management Protocol)协议:简单网络管理)协议:简单网络管理协议,为管理本地和远程的网络设备提供标准化途径。协议,为管理本地和远程的网络设备提供标准化途径。nDNSDNS(Domain N

7、ame SystemDomain Name System)协议:域名系统协议,把主机的域名)协议:域名系统协议,把主机的域名转换成相应的转换成相应的IPIP地址。地址。Network ProgrammingSoftware Engineering1.1.3 TCP、UDP协议协议Network Programming传输控制协议TCP传输控制协议传输控制协议(Transmission Control Protocol, TCP)是一种面向连接的、可靠的、基于字节流的运输层通信协议。传输控制协议不管实际消息边界是否存在。不管实际消息边界是否存在。TCP提供全双工服务,即数据可在同一时间双向流动。

8、在两个应用程序彼此连接之后,它们都可以发送和接收数据。TCP连接可以从应用程序A向B发送数据,而在同一时间还可以从B向A发送数据。Software Engineering1.1.3 TCP、UDP协议协议Network Programming用户数据报协议UDP 用户数据报协议 (User Datagram Protoco, UDP)是一个简单的面向数据报的传输层传输层(transport layer)协议,协议以消息为单位在网上传送数据,在发送端,消协议以消息为单位在网上传送数据,在发送端,消息一条一条地发送,在接收端,也只能一条一条地接收,息一条一条地发送,在接收端,也只能一条一条地接收,

9、每一条消息是独立的,消息之间存在着边界。每一条消息是独立的,消息之间存在着边界。UDP在传送数据之前不需要先建立连接。对方的传输层在收到 UDP 报文后,不需要给出任何确认。虽然 UDP 不提供可靠交付,但在某些情况下UDP是一种最有效的工作方式。Software Engineering1.1.4 IP地址与域名地址与域名nIP地址就是标识计算机或网络设备的网络地址。在计算机内部它由四个字节的32位的二进制数组成,为了方便,在外部使用时采用以小数点“.”分隔的四组十进制数表示。比如6等,所以IP地址的每一组数字都不能超过255。每一台计算机的IP地址是唯一的。(ipv

10、4 , ipv46)n由于IP地址含义不明确且不太方便记忆,在实际应用中大多使用主机名(有的也称域名),如http:/就比较明确,一看该网址就知道它是中央电视台的网址。主机名是和IP地址是一一对应的,通过DNS(域名服务器)解析可以由主机名获得计算机或网络设备的IP地址,因为对计算机或网络设备而言只有IP地址才是有效的标识符。 Software Engineering1.1.5 端口号端口号 一台机器只通过一条链路连接到网络上,但一台机器中往往有很多应用程序需要进行网络通信,如何区分呢?这就要靠网络端口号(port)了。 端口号是一个标记机器的逻辑通信信道的正整数,端口号不是物理实体。 端口是

11、一种抽象的软件结构(包括一些数据结构和I/O缓冲区)。应用程序通过系统调用与某端口建立连接后,传输层传给该端口的数据都被相应的进程(应用程序)所接收,相应进程发给传输层的数据都通过该端口输出。Software Engineering1.1.5端口号端口号n端口用一个整数型标识符来表示,即端口号。端口号跟协议相关,TCP/IP传输层的两个协议TCP和UDP是完全独立的两个软件模块,因此各自的端口号也相互独立。也就是说,基于TCP和UDP协议的不同的网络应用程序,它们可以拥有相同的端口号。端口使用一个16位的数字来表示,它的范围是(065535),1024以下的端口号保留给预定义的服务。例如:ht

12、tp使用80端口。我们在编写网络应用程序时,要为程序指定1024以上的端口号。Software Engineering表1.1 一些典型的应用层协议分配到的保留端口 TCP的保留端口UDP的保留端口FTP21DNS53HTTP80TFTP69SMTP25SNMP161POP3110 其余的端口号,其余的端口号,1024-65535,称为自由端口号,采,称为自由端口号,采用本地分配,又称为动态分配的方法。用本地分配,又称为动态分配的方法。 Software Engineering总之,TCP或UDP端口的分配规则是:n 端口0:不使用,或者作为特殊的使用;n 端口1-255:保留给特定的服务,T

13、CP和UDP均规定,小于256的端口号才能分配给网上著名的服务;n端口256-1023:保留给其他的服务,如路由;n端口1024-4999:可以用作任意客户的端口;n端口5000-65535:可以用作用户的服务器端口。 Software Engineering1.2 网络程序设计基础网络程序设计基础1.2.1 客户机/服务器模型模型 Internet和大多数现代网络应用程序都采用客户/服务器模型,这种分布式架构是几乎所有用户同Internet交互的基础。 客户端向服务器发出请求,服务器通过执行操作(如将信息发回客户端)做出响应,这就是客户/服务器模型的重要特征。n客户-服务器模式描述的是进程之

14、间的服务和被服务的关系。在这种模式下,大多数网络应用系统由两部分组成:客户(Client)和服务器(Server)。客户是主叫方,服务器是被叫方。n客户与服务器的通信关系一旦建立,通信就可以是双向的,客户和服务器都可以发送和接收信息。Software Engineering1.2.1客户机客户机/服务器模型模型服务器模型模型1、客户程序与客户机2、服务器服务器程序与服务器。程序与服务器。Software Engineering1.3.2 套接字(套接字(SOCKET)n套接字应用程序编程接口是网络应用程序通过网络协议套接字应用程序编程接口是网络应用程序通过网络协议栈进行通信时所使用的接口,即应

15、用程序与协议栈软件栈进行通信时所使用的接口,即应用程序与协议栈软件之间的接口,简称套接字编程接口之间的接口,简称套接字编程接口(Socket API)。n 它定义了应用程序与协议栈软件进行交互时可以使用它定义了应用程序与协议栈软件进行交互时可以使用的一组操作,决定了应用程序使用协议栈的方式、应用的一组操作,决定了应用程序使用协议栈的方式、应用程序所能实现的功能、以及开发具有这些功能的程序的程序所能实现的功能、以及开发具有这些功能的程序的难度。难度。Software Engineering 应用进程、套接口、网络协议栈及操作系统的关系 Software Engineering1.3 Java语言

16、与网络通信语言与网络通信 , java语言是Internet上的世界语,在在JavaJava语言中,与语言中,与网络编程有关的基本网络编程有关的基本API位于位于包中包中 ,提供网络功能的类和接口主要分为三种:提供网络功能的类和接口主要分为三种: 套接字套接字SocketSocket:直接在程序中实现网络通讯WEBWEB的编程接口的编程接口。 URLURL(Uniform Resource LocatorsUniform Resource Locators,统一资源定位器):属于,统一资源定位器):属于网络应用中的高级应用。通过指定的网络应用中的高级应用。通过指定的URLURL对象,能够很容易地确对象,能够很容易地确定网络资源的位置;使用这种方式,定网络资源的位置;使用这种方式,JavaJava程序可以直接读取或传程序可以直接读取或传送数据到网络中。其对送数据到网络中。其对SocketSocket编程进行了封装。编程进行了封装。Software E包中的主要的类包中的主要的类n面向IP层的类:InetAddressn面向应用层的类:URL、URLConnectionn面向网络层的类:nTCP协议相关类协议相关类:Socket、ServerSocketnUDP协议相关类:DatagramPacket、DatagramSocket、MulticastSocketn可能产生

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论