第14章Java网络编程基础_第1页
第14章Java网络编程基础_第2页
第14章Java网络编程基础_第3页
第14章Java网络编程基础_第4页
第14章Java网络编程基础_第5页
已阅读5页,还剩9页未读 继续免费阅读

下载本文档

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

文档简介

Java程序设计及应用开发教程主编:虞益诚E-mail:yuyich@教学课件2023/1/111Java程序设计及应用开发教程构架Java语言以其面向对象性、可重用性、平台无关性、多线程、安全可靠等特性成为网络程序设计中的佼佼者,受到广泛的青睐三大模块Java概述与语言基础Java异常处理图形用户界面编程Java线程机制与AppletJavaJava应用开发与课程设计实例教参Java流程控制及数组与字符串高级GUI设计技术输入输出流Java网络编程基础Java数据库连接第13-15

应用开发篇

第1-6

章基础知识篇

第7-12章程序设计篇

面向对象程序设计和继承与多态2023/1/112第14章Java网络编程基础第14章Java网络编程基础14.1

网络编程基础14.2 URL编程14.3 InetAdress类14.4 Socket通信14.5 本章小结

Java的平台无关性使其在网络上的开发获得了空前的成功,也唤起了人们对Java网络编程关注。本章将主要讲述网络编程基础、URL构成、URL类、URLConnection类,同时介绍了InetAdress类、Socket通信步骤、ServerSocket类与Socket类的运用。

2023/1/113第14章Java网络编程基础14.1

网络编程基础

Java的平台无关性使其在网络上的开发获得了空前的成功,也唤起了人们对Java网络编程关注。1.TCP/IP协议集

TCP/IP是一种计算机间的通信规则,它规定了计算机之间通信的所有细节,规定了每台计算机信息表示的格式和含义,规定了计算机之间通信所使用的控制信息,以及在在接到控制信息后应该作出的反应。TCP/IP参考模型包括应用层(ApplicationLayer)、传输层(TransportLayer)、网间网层(LayerbetweenNetwork)和网络接口层(NetworkInterfaceLayer)四层,如图13-1所示。

2.TCP与UDP协议TCP/IP模型的传输层提供了两种传输协议,即传输控制协议TCP和用户数据报协议UDP。TCP是面向连接的协议,在传递数据之前必须和目标结点建立连接,然后再传送数据,传送数据结束后,关闭连接。UDP(UserDatagramProtocol)是一种无连接协议,无须事先建立连接即可直接传送带有目标结点信息的数据报。2023/1/114第14章Java网络编程基础14.1网络编程基础03.IP地址与域名为确保Internet上每台主机在通信时能互相识别,每台主机都必须有一个唯一的地址,即IP地址来标识主机在网上位置。IP地址由32位二进制数构成,分为四段(4个字节),每段8位,可用小于256的十进制数来表示,段间用圆点隔开。域名的一般形式为:主机名.网络名.机构名.顶级域名

如,北京大学的域名是/,IP地址为04.端口与数据报端口(Port)和IP地址为网络通信的应用程序提供了一种确定的地址标识IP地址表示了发送端的目的计算机,而端口表明了将数据包发送给目的计算机上的哪一个应用程序。由于计算机网络中端口是用16位二进制数表示的,因而端口号分布在0到16535之间。其中,0到1023间的端口号分配给常用的网络服务,如HTTP占用端口80,FTP占用端口21,telnet占用端口23等。数据报(datagraph)是一种面向非连接的、以数据报方式工作的通信,适用于网络层不可靠的数据传输与访问。5.服务器与客户机提供资源的计算机叫做服务器,而把使用资源的计算机叫做客户机。

2023/1/115第14章Java网络编程基础14.1

网络编程基础16.Socket套接字

Socket套接字是网络驱动层提供给应用程序编程的接口和管理方法,用于处理数据接收与输出。Socket在应用层创建,通过一定的绑定机制与应用程序建立联系,告诉对方自己的IP地址与端口号,然后应用程序给Socket数据,由Socket交给驱动程序向网络发布,接收方可从Socket提取相应的数据。

7.网络编程方法与分类用Java实现计算机网络的底层通信就是用Java程序实现网络通信所规定的功能和操作。Java通过软件包实现多种网上通信模式:Socket通信模式、URL通信模式、InetAddress通信模式以及Datagram通信模式等。14.2URL编程14.2.1URL构成URL由4部分组成:资源类型(如HTTP、FTP、TeleNet等)、存放资源的主机域名、资源文件名和端口。URL的通用格式是:协议名://主机名:端口号/资源路径

2023/1/116第14章Java网络编程基础14.2.2URL类

Java语言访问网络资源是通过URL类来实现的。要使用URL进行通信,就要使用URL类创建其对象,通过调用URL类的方法完成网络通信。1.创建URL类的对象URL类提供用于创建URL对象构造方法有如下4个:

(1)publicURL(Stringurl);它是使用URL的字符串来创建URL对象。如:URLmyurl=newURL(“/”);(2)publicURL(URLbaseURL,StringrelativeURL);baseURL是绝对路径,relativeURL是相对位置。如:URLmyWeb=newURL(“/”);URLmyMat=newURL(myWeb,”jjgl/index.html”);若myWeb为null与方法(1)同。(3)publicURL(Stringprotocol,Stringhost,StringfileName);这个构造方法中指定了协议名“protocol”、主机名“host”、文件名“fileName”,端口使用缺省值。如:URLmyurlhost=newURL(“http”,.on,”index.html”);(4)publicURL(Stringprotocol,Stringhost,intport,StringfileName);该构造方法与(3)构造方法相比较多了一个端口号“port”。如:URLmyurlport=newURL(“http”,.on,80,”index.html”);2023/1/117第14章Java网络编程基础14.2URL编程2.URL类的主要方法一个URL对象生成后其属性是不能被改变的,可以通过类URL所提供的方法来获取这些属性。URL类的主要方法如表13-1所示。【例13-1】利用URL访问上海应用技术学院网站和新浪网站。

2023/1/118第14章Java网络编程基础14.2URL编程014.2.3URLConnection类

使用URLConnection类可获取网站信息并向远程网络服务器传送信息。可通过getInputStream()与getOutoutSream()方法来完成诸多任务。1.创建URLConnect类对象使用URLConnection对象前,须先创建一个URL对象,然后通过调用该对象的openConnection()方法来返回该URL地址的URLConnect对象。如:URLmyurl=newURL(“/”);//创建一个URL对象URLConnectionConnect=myurl.openConnection();//创建类链接通道

2.建立输入输出数据流在建立URLConnection类的对象的同时就已在本机和URL节点之间建立了一条一次连接且有确认双方身份的HTTP通道。例如:DataInputStreamDin=newDataInputStream(Connect.getInputStream());//建立输入流PrintStreamDout=newPrintStream(Connect.getoutputStream()); //建立输出流【例13-2】利用URL获取本地或远程服务器端的数据。2023/1/119第14章Java网络编程基础【例13-3】简单搜索引擎的开发设计importjava.awt.*;importjava.applet.*;importjava.awt.event.*;import.*;publicclassURLConnectionNetExextendsAppletimplementsActionListener{StringwebList[]={"","","",""}; //确定搜索引擎对应网址StringwebName[]={“百度”,“新浪”,“Google”,“北大天网”};//确定引擎名称Choiceselect;publicvoidinit(){select=newChoice();Buttonb=newButton("点击搜索");for(inti=0;i<=3;i++){select.addItem(webName[i]);}add(select);b.addActionListener(this);add(b);}publicvoidactionPerformed(ActionEvente){Strings=e.getActionCommand();if(s.equals("点击搜索")){//判断点击按钮名称intno=select.getSelectedIndex();openWeb(no);}}//获取所选搜索引擎号.打开网站

voidopenWeb(intindex){try{URLurl=newURL(webList[index]);getAppletContext().showDocument(url); //显示网站相应网页内容}catch(Exceptione){}}//openWeb()方法结束 }2023/1/1110第14章Java网络编程基础14.3InetAdress类

InetAddress可用于标识网络的硬件资源,包中的InetAddress类提供了一系列描述使用网络资源的方法。1.获取Internet上主机地址通常可以使用InetAddress类的静态方法来构造实例:publicstaticInetAddressgetByName(Stringhost);该方法将一个域名或IP地址传递给该方法的参数host(可为机器名、域名或IP地址),进而获得一个InetAddress对象。因而该对象含有了主机地址的域名和IP地址。此外,InetAddress类中尚含有两个常用的实例方法:

publicStringgetHostName();//用来获取InetAddress对象所含域名

publicStringgetHostAddress();//用来获取InetAddress对象所含的IP地址。2.获取本地机的地址

Java中可以使用InetAddress类的静态方法来获取本地机的地址。

getLocalHost();用来获得一个含有本地机域名和IP地址的InetAddress对象

【例13-4】从网上获取域名或IP地址。

2023/1/1111第14章Java网络编程基础14.4Socket通信

网络上用户的应用程序可以通过Socket(套接字)与其他用户进行通信。Socket是通信端点的一种抽象,它提供了一种发送和接收数据的机制。WindowsSocket有两种形式:数据报Socket和流式Socket。在此,关注后者,文中不加说明泛指流式Socket,它是采用TCP作为传输控制协议。14.4.1Socket概念

Socket是TCP/IP的编程接口,即利用Socket提供的一组API就可以通过编程实现TCP/IP协议。在Java中,Socket通信所采用的流式套接字通信方式,是使用TCP协议,实现客户/服务器之间双向通信。14.4.2Socket通信步骤

Socket通信过程分为如下三个步骤:(1)建立连接:首先客户端程序申请连接,而服务器端程序监听所有端口,判断是否有客户程序的服务请求,有则服务器就将Socket连接到该端口上,建立了一个专用的虚拟连接。(2)数据通信:客户程序可向Socket写入请求,服务器程序处理请求并把结果通过Socket返回给客户机,完成通过虚拟通道的数据通信。(3)拆除连接:通信结束,将所建立的虚拟连接全部拆除。2023/1/1112第14章Java网络编程基础14.4.3ServerSocket类与Socket类

J包中提供了:ServerSocket和Socket两个类,分别用于服务器端和客户端的Socket通信。ServerSocket和Socket类的主要构造方法如表13-2所示。1.创建Serversocket类对象和Socket类对象

创建ServerSocket对象ServerSocket对象负责等待客户端请求建立套接字连接,可用于创建一个在指定端口处设置监听服务的ServerSo

温馨提示

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

评论

0/150

提交评论