已阅读5页,还剩18页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
网络编程,本章内容,网络基本知识InetAddress基于TCP协议的网络编程基于UDP协议的网络编程URL,计算机网络,计算机网络是相互连接的独立自主的计算机的集合,最简单的网络形式由两台计算机组成。,两台计算机通过网络进行通信,A,B,18,0,协议,协议,端口,端口,IP地址,IP网络中每台主机都必须有一个惟一的IP地址;IP地址是一个逻辑地址;因特网上的IP地址具有全球唯一性;32位,4个字节,常用点分十进制的格式表示,例如:6,协议,为进行网络中的数据交换(通信)而建立的规则、标准或约定。(=语义+语法+规则)不同层具有各自不同的协议。,ISO/OSI七层参考模型,OSI(OpenSystemInterconnection)参考模型将网络的不同功能划分为7层。,应用层,表示层,物理层,会话层,传输层,网络层,数据链路层,处理网络应用,数据表示,主机间通信,端到端的连接,寻址和最短路径,介质访问(接入),二进制传输,ISO/OSI七层参考模型,通信实体的对等层之间不允许直接通信。各层之间是严格单向依赖。上层使用下层提供的服务Serviceuser;下层向上层提供服务Serviceprovider。,OSI各层所使用的协议,应用层:远程登录协议Telnet、文件传输协议FTP、超文本传输协议HTTP、域名服务DNS、简单邮件传输协议SMTP、邮局协议POP3等。传输层:传输控制协议TCP、用户数据报协议UDP。TCP:面向连接的可靠的传输协议。UDP:是无连接的,不可靠的传输协议。网络层:网际协议IP、Internet互联网控制报文协议ICMP、Internet组管理协议IGMP。,数据封装,一台计算机要发送数据到另一台计算机,数据首先必须打包,打包的过程称为封装。封装就是在数据前面加上特定的协议头部。,数据,数据,协议头,数据封装,OSI参考模型中,对等层协议之间交换的信息单元统称为协议数据单元(PDU,ProtocolDataUnit)。OSI参考模型中每一层都要依靠下一层提供的服务。为了提供服务,下层把上层的PDU作为本层的数据封装,然后加入本层的头部(和尾部)。头部中含有完成数据传输所需的控制信息。这样,数据自上而下递交的过程实际上就是不断封装的过程。到达目的地后自下而上递交的过程就是不断拆封的过程。由此可知,在物理线路上传输的数据,其外面实际上被包封了多层“信封”。但是,某一层只能识别由对等层封装的“信封”,而对于被封装在“信封”内部的数据仅仅是拆封后将其提交给上层,本层不作任何处理。,TCP/IP模型,TCP/IP起源于美国国防部高级研究规划署(DARPA)的一项研究计划实现若干台主机的相互通信。现在TCP/IP已成为Internet上通信的工业标准。TCP/IP模型包括4个层次:应用层传输层网络层网络接口,TCP/IP与OSI参考模型的对应关系,7654321,OSI参考模型,TCP/IP模型,端口,端口是一种抽象的软件结构(包括一些数据结构和I/O缓冲区)。应用程序通过系统调用与某端口建立连接(binding)后,传输层传给该端口的数据都被相应的进程所接收,相应进程发给传输层的数据都通过该端口输出。端口用一个整数型标识符来表示,即端口号。端口号跟协议相关,TCP/IP传输层的两个协议TCP和UDP是完全独立的两个软件模块,因此各自的端口号也相互独立,端口通常称为协议端口(protocolport),简称端口。端口使用一个16位的数字来表示,它的范围是065535,1024以下的端口号保留给预定义的服务。例如:http使用80端口。,端口,套接字(socket)的引入,为了能够方便的开发网络应用软件,由美国伯克利大学在Unix上推出了一种应用程序访问通信协议的操作系统调用socket(套接字)。socket的出现,使程序员可以很方便地访问TCP/IP,从而开发各种网络应用的程序。随着Unix的应用推广,套接字在编写网络软件中得到了极大的普及。后来,套接字又被引进了Windows等操作系统中。Java语言也引入了套接字编程模型。,InetAddress,无论你是在打电话、发送邮件或建立与Internet的连接,地址是基础。InetAddress类用来封装我们前面讨论的数字式的IP地址和该地址的域名。你通过一个IP主机名与这个类发生作用,IP主机名比它的IP地址用起来更简便更容易理解。InetAddress类内部隐藏了地址数字。InetAddress类没有明显的构造函数。为生成一个InetAddress对象,必须运用一个可用的工厂方法。工厂方法(factorymethod)仅是一个类中静态方法返回一个该类实例的约定。三个方法显示如下:staticInetAddressgetLocalHost()throwsUnknownHostExceptionstaticInetAddressgetByName(StringhostName)throwsUnknownHostExceptionstaticInetAddressgetAllByName(StringhostName)throwsUnknownHostExceptiongetLocalHost()仅返回象征本地主机的InetAddress对象。getByName()方法返回一个传给它的主机名的InetAddress。如果这些方法不能解决主机名,它们引发一个UnknownHostException异常。,基于TCP的socket编程,Server,Server,ServerSocket(intport),Socketaccept(),OutputStreamSocket.getOutputStream(),InputStreamSocket.getInputSream(),Socket.close(),Client,Socket(InetAddressaddress,intport),OutputStreamSocket.getOutputStream(),InputStreamSocket.getInputStream(),Socket.close(),服务器程序编写:调用ServerSocket(intport)创建一个服务器端套接字,并绑定到指定端口上;调用accept(),监听连接请求,如果客户端请求连接,则接受连接,返回通信套接字。调用Socket类的getOutputStream()和getInputStream获取输出流和输入流,开始网络数据的发送和接收。最后关闭通信套接字。客户端程序编写:调用Socket()创建一个流套接字,并连接到服务器端;调用Socket类的getOutputStream()和getInputStream获取输出流和输入流,开始网络数据的发送和接收。最后关闭通信套接字。,基于UDP的socket编程,接收端(Server),发送端(Client),DatagramSocket(intport),DatagramSocket(),DatagramPacket(bytebuf,intlength),DatagramSocket.receive(DatagramPacketp),DatagramSocket.close(),DatagramSocket.close(),DatagramPacket(bytebuf,intlength,InetAddressaddress,intport),DatagramSocket.send(DatagramPacketp),接收端程序编写:调用DatagramSocket(intport)创建一个数据报套接字,并绑定到指定端口上;调用DatagramPacket(bytebuf,intlength),建立一个字节数组以接收UDP包。调用DatagramSocket类的receive(),接收UDP包。最后关闭数据报套接字。发送端程序编写:调用DatagramSocket()创建一个数据报套接字;调用DatagramPacket(bytebuf,intoffset,intlength,InetAddressaddress,intport),建立要发送的UDP包。调用DatagramSocket类的send(),发送UDP包。最后关闭数据报套接字。,URL与URI,URL(UniformResourceLocator),通用资源定位符。,URL格式,一个URL规范以四个元素为基础:第一个是所用到的协议,用冒号(:)来将它与定位符的其他部分相隔离如http:,ftp:。第二个元素是主机名或所用主机的IP地址,这由左边的双斜线(/)和右边的单斜线(/)或可选冒号(:)限制。如:第三个成分,端口号,是可选的参数,由主机名左边的冒号(:)和右边的斜线(/)限制(它的默认端口为80,它是预定义的HTTP端口;所以“:80”是多余的)。第四部分是实际的文件路径。多数HTTP服务器将给URL附加一个与目录资源相关的index.html或index.htm文件。所以,,创建URL,Java的URL类有多个构造函数,每个都能引发一个MalformedURLException异常。一个常见形式是用与你在浏览器中看到的相同的字符串指定URL:URL(StringurlSpecifier)下面的两个构造函数形式允许你把URL分裂成它的组成部分:URL(StringprotocolName,StringhostName,int
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 五金配件购销合同
- 签证购房合同
- 承包厂食堂合同
- 药厂租赁合同
- 邮政入职合同
- 下载格式合同
- 公司签的用工合同
- 零星用工合同
- 订立还款协议书
- 穿越70协议书婚姻
- 2025云南省交投集团下属临沧管理处收费员等岗位招聘(30人)考试参考题库及答案解析
- 2025年事业单位招聘财务人员的考试题及答案
- 2025年证监会公务员考试行测金融知识模拟试卷(含答案)
- 2025年国家保安员技能证书考试题库(含答案)
- 电芯安全培训课件
- 2025至2030中国商业体育场馆行业市场发展现状及商业模式与投融资战略报告
- 2025 全球海上风电大会专刊 海上风电回顾与展望2025
- 教练技术第一阶段导师讲义
- 妊娠期急性脂肪肝ppt课件
- 五年级上册数学课件-5.7《除数是小数的除法》 |苏教版(2021秋) (共23张PPT)
- 生化工程导言课件
评论
0/150
提交评论