已阅读5页,还剩13页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
.,JAVA语言程序设计第十六章网络编程,西北第二民族学院计算机科学与技术系研究员王伦津,.,网络基础知识,计算机网络是利用通信设备和线路将地理位置不同、功能独立的多个计算机系统相互连接起来,以实现资源共享和信息交换的系统体系。,1977年国际标准化组织ISO提出一个试图使各种计算机在世界范围内互相连成网的标准框架,即开放系统互连基本参考模型OSI/RM(OpenSysytemsInterconnectionReferenceModel),简称OSI。1983年正式成为国际标准。,计算机的开放系统互联模型OSI共分7个层次:物理层、数据链路层、网络层、传输层、会话层、表示层和应用层,在不同的层次有不同的软硬件工作。其中传输层以下(含运输层)称为底层,仅负责网络上信息的无误传输。其余为高层主要解决数据传输管理、用户信息的语法表示以及应用进程经常使用的功能。,.,TCP/IP协议,TCP/IP(TransmissionControlProtocol/InternetProtocol)协议是Internet的基础和核心。主要功能是提供点对点的通信机制。从网络通信的角度看,Internet是一个用TCP/IP协议把各个国家、各个部门、各种机构的内部网络连接起来的超级数据通信网。,为了支持点对点通信,每个节点要有一个像电话号码一样的唯一的地址称为IP地址。它是一个32位的二进制数。由于不便于记忆将此地址表示成4个十进制数,各取0-255的值。每个值之间用点“.”分隔。,为了进一步方便使用,人们给每个节点都起一个名字,把名字与IP地址建立一个对应关系,这就是域名系统(DNS),有了它,凡域名空间有定义的域名都可以有效地转换成IP地址。,.,Internet采用客户机/服务器方式访问资源,当用户在共享某个Internet资源时,有两个独立的程序协同服务。这两个程序运行在不同的计算机上,通常把提供资源的计算机叫做服务器,把使用资源的计算机叫做客户机。由于在Internet上用户往往不知道究竟是哪台计算机提供了资源,因而客户机、服务器指的是软件,即客户程序和服务程序。,当用户使用Internet功能时,首先启动客户机,通过有关命令告知服务器进行连接以完成某种操作,而服务器则按照此要求提供相应的服务。,客户机与服务器,.,URL统一资源定位标志,在WWW上,每一信息资源都有统一且唯一的地址,该地址就叫URL(UniformResourceLocator),它是WWW的统一资源定位标志。URL由4部分组成;资源类型、存放资源的主机域名、资源文件名和端口。例如,http:/WWW:80/top.html其中http表示该资源类型是超文本信息WWW是清华大学的主机域名80为HTTP协议的端口号top.html为资源文件名,HTTP协议默认端口号是80,FTP协议默认端口号是21,.,URL类及其构造方法,要使用URL进行通信,就要使用URL类创建其对象,通过引用URL类定义的方法完成网络通信。创建URL类对象要使用包中提供的.URL类的构造方法。,URL类构造方法,.,URL类的方法,.,.*;importjava.io.*;publicclassNetUrlSite16_1publicstaticvoidmain(Stringargs)if(args.length1)System.out.println(没有给出URL);System.exit(1);elsefor(inti=0;iargs.length;i+)urlSite(argsi);publicstaticvoidurlSite(Stringurlname)Strings;URLurl=null;InputStreamurlstream=null;tryurl=newURL(urlname);,catch(Exceptione)System.out.println(URL名字错误);tryurlstream=url.openStream();DataInputStreamdat=newDataInputStream(urlstream);while(s=dat.readLine()!=null)System.out.println(s);catch(IOExceptione)System.out.println(URL文件打开错误);,.,URLConnection类,使用URL类可以很简单地获得信息,但如果在获取到信息的同时还能向远程的计算机节点传送信息,就需要使用URLConnection类。,创建URLConnection类的对象,先要创建一个URL对象,然后调用该对象的openConnection()方法就会返回一个对应URL地址的URLConnection对象URLurl=newURL(“”);/创建URL对象URLConnectionconnect=url.openConnection();/创建链接通道,建立输入/输出流URLConnection类不仅可以使用getInputStream()方法获得URL节点的信息,还可以采用getOutputStream()方法向URL节点处传送信息。在建立URLConnection类对象的同时就已经在本级和URL节点之上建立了一条HTTP通道。HTTP是一个一次连接协议,发送信息之前要附加确认双方身份的信息。例DataInputStreamdatain=newDataInputStream(connect.getInputStream();,.,.*;importjava.io.*;publicclassNetConnect16_2publicstaticvoidmain(Stringargs)Stringurlname=file:/c:/jdk/Test.java;Strings,x;URLurl=null;URLConnectionconn=null;OutputStreamout=null;InputStreamin=null;tryurl=newURL(urlname);conn=url.openConnection();conn.setDoOutput(true);catch(Exceptione)System.out.println(URL名字错误);,tryin=conn.getInputStream();x=conn.getContent();DataInputStreamdat=newDataInputStream(in);while(s=dat.readLine()!=null)System.out.println(s);dat.close();catch(Exceptione)System.out.println(URL文件打开错误);,.,Socket通信,网络上计算机的任何一个应用程序都可以通过Socket与其它计算机进行通信。Socket是通信端点的一种抽象,它提供了一种发送和接收数据的机制,在WindowsSocket中有两种形式,数据报Socket和流式Socket,本章只介绍流式Socket,它采用TCP作为传输协议。,Socket(套接字)是TCP/IP的变成接口,即利用Socket提供的一组API就可以编程实现TCP/IP协议。在JAVA中,Socket通信所采用的流式套接字通信方式,使使用TCP协议,实现客户/服务器之间双向通信。,Socket称为“套接字”,是指在两台计算机上运行的两个程序之间的一个双向通信的链接点,而每一端称为一个Socket,它提供一种面向连接的可靠的数据传输方式,它能保证发送的数据按顺序无重复的到达目的地。,.,Socket的通信机制,Socket所要完成的通信就是基于连接的通信,建立连接的程序分别运行在客户端和服务器端。,1、建立连接:首先客户端程序申请连接,而服务器端程序监听所有端口,判断是否有客户程序的服务请求,当客户程序请求和某端口连接时,服务器就将Socket连接到该端口上,此时服务器和客户程序之间建立了一个专用的虚拟连接。2、数据通信:客户程序可以向Socket写入请求,服务器程序处理请求并把处理结果通过Socket送回。3、拆除连接:通信结束,将所建的虚拟连接拆除。,.,具体实施步骤,1、创建ServerSocket类对象和Socket类对象创建一个ServerSocket对象就创建了一个监听,由于一台服务器可监听多台客户机,因此要指定端口号,以区别不同的服务请求。ServerSocketListen=newServerSocket(4321);为了能够随时监听客户端的请求,可以引用ServerSocket对象的accept()方法Socketline=Listen.accept();创建Socket对象用于使用端口号与服务器建立连接,服务器在捕获到客户端的请求时,根据端口号来完成给定的服务。Socketservice=newSocket(“Emailserver”,4321);其中“Emailserver”是指服务器的主机的名称对应的地址,4321是指服务的端口号。,.,2、发送和接收流式数据Socket对象创建成功后,就可以在客户机与服务器之间建立一个连接,并通过这个连接在两个端口之间传送数据。OutputStreamtranslate=service.getOutputStream();/输出流InputStreamreceive=service.getInputStream();/输入流Translate.write(receive.read();/将读出的数据写回,3、拆除连接通信完成后,由应用程序断开服务器和客户端的虚拟连接,释放所占用的系统资源,java采用close()方法断开连接。对客户端:socket.close();对服务器端:server.close();,.,Socket类与ServerSocket类的构造方法,.,.,URL与Socket通信的区别,Socket通信方式是在服务器端运行通信程序,不停地监听客户端的连接请能够使通信发求,主动等待客户端的请求服务,当客户端提出请求时,马上连接并通信;而URL进行通信时,是被动等待客户端的请求。Socket通信方式是服务器可以同时与多个客户端进行相互通信,而URL通信方式是服务器只能与一个客户进行通信。,UDP通信,UDP通信是一种无连接的数据报通信,采用数据报通信协议UDP(UserDatagramProtocol)。按照这个协议。两个系统在进行通信时,不要建立连接,优点是它发送数据的速度很快,而缺点是数据较易丢失,例如红外线数据传输就是采用UDP的传输协议。,.
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年吴忠辅警招聘考试真题附答案详解(综合卷)
- 2024年喀什辅警招聘考试真题及1套参考答案详解
- 2024年宝鸡辅警协警招聘考试备考题库及答案详解(网校专用)
- 2024年克拉玛依辅警协警招聘考试真题及完整答案详解1套
- 2023年金华辅警协警招聘考试备考题库含答案详解(b卷)
- 2024年佛山辅警招聘考试题库含答案详解(完整版)
- 2023年辽源辅警招聘考试题库含答案详解(综合卷)
- 2024年宿州辅警协警招聘考试备考题库及完整答案详解一套
- 2023年驻马店辅警招聘考试真题含答案详解(a卷)
- 安徽省合肥三中2026届化学高二第一学期期末复习检测模拟试题含解析
- 延安红色教育培训:感悟与收获的分享
- 中国海军课件
- 在线学习课堂《项目管理概论》单元考核测试答案
- 股东间投资合作与信息共享协议书
- 员工食堂安全培训课件
- 水务行政执法培训课件
- 高考总复习核按钮 语文02-专题二 文学类文本阅读·小说
- 四川绵竹高发投资集团有限公司招聘笔试题库2025
- 医院实验室生物安全委员会文件
- 马克思主义与社会科学方法论课后思考题答案
- 军队文职-临床医学 (军队文职)真题库-30
评论
0/150
提交评论