java_网络编程技术.pdf

上传人:qwe****56 文档编号:70010933 上传时间:2023-01-14 格式:PDF 页数:20 大小:215.42KB
返回 下载 相关 举报
java_网络编程技术.pdf_第1页
第1页 / 共20页
java_网络编程技术.pdf_第2页
第2页 / 共20页
点击查看更多>>
资源描述

《java_网络编程技术.pdf》由会员分享,可在线阅读,更多相关《java_网络编程技术.pdf(20页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。

1、1第第9章章 网络编程技术网络编程技术教学内容9.1网络技术基础9.2使用URL类9.3使用InetAddress类9.4TCP和UDP Socket编程技术9.5习题返回总目录29.1网络技术基础网络技术基础返回目录协议是一组规则,它定义了计算机之间相互通信的规程和约定,在计算机通信中起着非常重要的作用。网络协议管理着网络计算机和网络应用程序之间的信息流动,其模型如下图所示。在Internet/Intranet网络上计算机之间的通信常使用的是TCP和UDP协议。39.1网络技术基础网络技术基础TCP是一种可靠的网络通信协议,它的通信方式就像平时打电话一样,首先通话的双方必须建立一个连接(类似

2、于打电话时拨号),然后才能接收数据(类似于打电话时的交谈),通信结束后,关闭网络连接(类似于通话双方挂上电话)。TCP通信协议在通信双方提供了一个点对点的通道,保证了数据通信的可靠进行,否则,会提示通信出错。典型的TCP应用程序有超文本传输协议(Hyper Text Transfer Protocol,HTTP),文件传输协议(File Tranfer Protocol,FTP)和远程登录协议。UDP提供了一种基于非连接的网络通信协议,它的通信方式非常类似于邮信,每次通信时发送一个独立数据包,发送的顺序并不重要,也无法保证。在网络通信质量不断提高的今天,UDP的应用相当广泛,它与TCP相比具有

3、系统开销小的优点。UDP的一个典型的应用是ping,ping命令的目的是测试通过网络连接的计算机之间的通信是否通畅。49.1网络技术基础网络技术基础TCP和UDP都提供了端口的概念。端口(Port)和IP地址一起为网络通讯的应用程序之间提供了一种确切的地址标识作用,IP地址标识了发送数据的目的的计算机,而端口标识了将数据包发送给目的计算机上的具体应用程序上,其工作原理下图所示。端口号的范围从0到65535,1024以下的端口号由系统使用。59.2使用使用URL类类URL的基本概念的基本概念URL又称为统一资源定位器。IP地址定位了在互联网上的一台计算机,端口定义了在这台计算机提供的服务,而UR

4、L提供了网上资源的一个指针。该资源可以是一个简单的文件,或者一个目录,也可以是一个复杂的对象。通过URL,可以访问Inernet服务器,浏览器通过解析给定的URL可以在网络上查找相应的文件和网络资源。一般地,一个URL的语法格式如下。:/#例如,http:/、ftp:/、telnet:/都是URL常用的地址形式。返回目录69.2使用使用URL类类URL类类1构造方法URL类提供了几个构造方法,以便创建URL对象,其目的就是为了在Internet/Intranet上确定资源的位置,这也是操作这些资源的前提。2方法URL类中常用的方法有以下几个。(1)public String getProtoc

5、ol()。(2)public String getHost()。(3)public String getFile()。(4)public int getPort()。(5)public String getRef()。(6)public URLConnection openConnection()throws java.io.IOException。(7)public final InputStream openStream()throws javaioIOException。(8)public final Object getContent()throws java.io.IOExcepti

6、on。返回目录79.2使用使用URL类类URL类类在Java语言中,GUI标准组件是由AWT包中的对象来代表的。所有的GUI标准组件都是java.awt.*包中的根类Component类的子类,Component类的直接子类包括一个容器组件Container和8个基本组件,如Button、Label、Choice、TextComponent等。Container是所有容器组件的根类,容器组件的主要作用是包容其他组件并按一定的方式组织排列它们,同一个容器中的所有部件通常是同时被显示和同时被隐藏的。所有的容器组件都是Container类的子类,可分为3组。第1组为Panel和Applet容器,它们

7、都是无边框的;第2组为ScrollPane容器,它们是可以自动处理滚动操作的容器;第3组为Window、Frame、Dialog和FileDialog容器,它们是都含有边框,并可以进行移动、放大、缩小、关闭等操作,且具有较强功能的容器。返回目录89.2使用使用URL类类URLConnection类类Java语言提供了两种方法读取数据,一种是通过URL对象直接得到相关的网络信息;另一种是先得到一个URLConnection实例,再得到InputStream或InputStream对象,然后读取数据。前者是一种简单、直接的方法,但缺乏灵活性,并且只能读取只读信息,后者提供了更加灵活有效的方法来读取

8、网络资源。URLConnection类是一个抽象类,是实现应用程序和URL之间通信连接的所有类的超类,该类的实例可以用来读写URL所指的资源。在创建了URL对象之后,可以使用URL对象的openConnection()方法来创建URLConnection对象实例,然后就可以使用下面的方法完成各种各样的操作。返回目录99.3使用使用InetAddress类类InetAddress类简介类简介在InetAddreess类中,常用的方法有以下几个。(1)public static InetAddress getLocalHost()。功能:得到本地主机的域名和IP地址。(2)public stati

9、c InetAddress getByName()。功能:得到指定主机的域名和IP地址。(3)public static InetAddress getAllByName()。功能:得到指定主机名的所有IP地址。(4)public boolean isMulticastAddress()。功能:判断是否是一个IP多点传送地址。(5)public String getHostName()。功能:得到指定主机的机器名。(6)public byte getAddress()。功能:得到指定主机的地址。(7)public String getHostAddress()。功能:得到指定主机的IP地址。返

10、回目录109.3使用使用InetAddress类类应用实例应用实例【边学边练9.5】获得指定主机域名的IP地址示例。import .*;public class getIP2 public static void main(String args)throws Exception/*定义一个InetAddress类的对象实例myIP1,并与相关联*/InetAddress myIP1=InetAddress.getByName();System.out.println(myIP1);InetAddress myIP2=InetAddress.getLocalHost();System.out.

11、println(myIP2);/*获取主机IP地址和名称*/System.out.println(myIP1.getHostName();System.out.println(myIP1.getHostAddress();System.out.println(myIP2.getHostName();System.out.println(myIP2.getHostAddress();返回目录119.3使用使用InetAddress类类应用实例应用实例运行结果为 Socket 和UDP Socket,它们分别对应着面向连接的通信方式和无连接的通信方式。Socket通常应用于客户机/服务器程序。服务

12、器端在运行许多服务进程时,等待各个客户程序的服务要求,并处理这些服务请求。为了让客户机知道如何与相应的服务进程建立通信联系,一般系统会为一些服务类型分配默认的端口号。返回目录139.4TCP和和UDPsocket编程技术编程技术TCPSocket技术技术TCP Socket是TCP协议的一个应用。要创建一个TCP Socket需要4个参数:本地IP地址、本地应用端口号、目的IP地址、目的应用端口号。应用Socket进行网络编程,无论程序实现的功能多么复杂,它的基本结构都是一样的,具体包括4个步骤。(1)打开Socket。(2)打开连接到Socket的输入/输出流。(3)按照一定的协议对Sock

13、et进行读/写操作。(4)关闭输入/输出流,关闭Socket。通常,程序员主要针对第(3)步进行编程,其他几步在任何程序中几乎都相同。.Socket和.ServerSocket是Java提供的用于建立网络应用的类,应用这些类可以方便地建立基于Socket的网络应用,利用TCPSocket技术类编程,常常会抛出I/O异常。返回目录149.4TCP和和UDPsocket编程技术编程技术TCPSocket技术技术1创建TCP客户端应用程序建立客户端的网络应用程序是通过Socket类完成的,它有以下几种构造方法。(1)Socket(InetAddress address,int port)。功能:创建

14、一个数据流Socket,并将它连到相应的端口上。(2)Socket(InetAddress address,int port,InetAddress localaddr,int localport)。功能:创建一数据流Socket,将它连到相应的远端地址的端口上。(3)Socket(String host,int port)。功能:创建一个数据流Socket,并将它连到相应的端口上。(4)Socket(String host,int port,InetAddress localaddr,int localport)。功能:创建一数据流Socket,将它连到相应的远端地址的端口上。返回目录159

15、.4TCP和和UDPsocket编程技术编程技术TCPSocket技术技术2创建TCP服务端应用程序Java语言为创建TCP服务器端的Socket提供了ServerSocket类,该类允许程序绑定一个端口,等待客户端程序请求,然后根据客户的请求执行一定的操作,并对请求作出响应。ServerSocket类提供了3种构造方法。(1)public ServerSocket(nt port)。(2)public ServerSocket(nt pot,int count)。(3)public ServerSocket(nt pot,int count,InetAddress bindAddr)。返回目

16、录169.4TCP和和UDPsocket编程技术编程技术TCPSocket技术技术1FlowLayoutFlowLayout是容器Panel和Applet程序默认使用的布局管理策略。创建FlowLayout类的对象可以使用下面的方法。FlowLayout():设置一个FlowLayout对象。对齐方式为居中,组件间的横纵间距都为5个像素。FlowLayout(int align,int hgap,int vgap):align指定每行组件的对齐方式,可以取LEFT、CENTER、RIGHT三个常量之一;hgap和vgap分别指定各组件间的横向和纵向间的以像素为单位的间距。FlowLayout(

17、int align):align指定每行组件的对齐方式,组件间的横纵间距都为5个像素。创建完FlowLayout对象后,必须使用setLayou()方法进行设定,才能有效。返回目录179.4TCP和和UDPsocket编程技术编程技术TCPSocket技术技术2创建TCP服务端应用程序Java语言为创建TCP服务器端的Socket提供了ServerSocket类,该类允许程序绑定一个端口,等待客户端程序请求,然后根据客户的请求执行一定的操作,并对请求作出响应。ServerSocket类提供了3种构造方法。(1)public ServerSocket(nt port)。(2)public Ser

18、verSocket(nt pot,int count)。(3)public ServerSocket(nt pot,int count,InetAddress bindAddr)。返回目录189.4TCP和和UDPsocket编程技术编程技术UDPSocket技术技术同TCP一样,Java语言也提供了一些类库实现UDP网络编程。UDP编程主要有以下几个步骤。(1)创建包括有目的的地址的数据报。(2)创建一个Socket,用于发送或接受数据报。(3)发送数据报。(4)等待服务器响应。(5)从响应数据报中抽取信息并显示。Java提供的有关UDP编程的类有DatagramPacket和Datagra

19、mSocket。DatagramSocket类用来创建一个UDP Socket。DatagramPacket类有两个作用:在发送UDP数据报之前,需要用DatagramPacket类封装一个数据报,可以包括发送的目的地址和端口号;当接收到一个UDP数据报后,需要用DatagramPacket类读取数据报中的各种信息。同样,利用UDP Socket技术类编程,也常会抛出IOException和SocketException类型的异常。199.4TCP和和UDPsocket编程技术编程技术UDPSocket技术技术1DatagramPacket类DatagramPacket类中包含有下面一些构造方

20、法。(1)public DatagramPacket。功能:创建数据报,这个数据报用来保存接收到的数据报。(2)public DatagramPacket(byte ibuf,int ilength,InetAddress iaddr,int iport)。功能:创建任意长度的数据报。当接收到一个数据报后,DatagramPacket类提供了以下方法来读取其中的数据信息。(1)public synchronized InetAddress getAddress()。功能:返回数据报中的包含的IP地址。(2)public synchronized byte getLength()。功能:返回数据

21、报中的数据信息。(3)public synchronized int getLength()。功能:返回数据长度。(4)public synchronized int getPort()。功能:返回数据报中的端口信息。209.4TCP和和UDPsocket编程技术编程技术UDPSocket技术技术2DatagramSocket类(1)public DatagramSocket()。功能:创建一个UDP Socket,并且系统给它分配一个可用的端口号。(2)public DatagramSocket(int port)。功能:创建一个UDP Socket,并且编程人员给它分配一个端口号。(3)p

22、ublic DatagramSocket(int port,InetAddress iaddr)throws SocketException。功能:创建一个UDP Socket,并将它绑定到参数所示的地址和端口上。(4)public void send(DatagramPacket p)。功能:发送一个数据报,数据报中包含有数据、数据长度、目的地址及端口信息。(5)public synchronized void receive(DatagramPacket p)。功能:该方法运行后将进入阻塞状态,直到接收到一个数据报。(6)public synchronized void close()。功能:关闭UDP Server。

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 技术资料 > 其他杂项

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知得利文库网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号-8 |  经营许可证:黑B2-20190332号 |   黑公网安备:91230400333293403D

© 2020-2023 www.deliwenku.com 得利文库. All Rights Reserved 黑龙江转换宝科技有限公司 

黑龙江省互联网违法和不良信息举报
举报电话:0468-3380021 邮箱:hgswwxb@163.com