版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、电子课件JAVA语言程序设计java10第10章网络与通信程序设计10.1IP地址与网络指针10.2Internet通信本章目录10.1IP地址与网络指针一、InetAddress类InetAddress类是获取和处理网络地址信息的类,表示互联网协议地址即IP地址。有两个子类:Inet4Address类表示互联网协议第4版地址,Inet6Address类表示互联网协议第6版地址。实际工作中经常利用InetAddress类及其方法成员进行IP地址和域名的信息处理以获取网络信息。在InetAddress类中没有定义构造方法。以下几个方法成员适合于初始化InetAddress类对象实例:getByN
2、ame(String host) /在给定主机名的情况下确定 /主机的IP地址getAllByName(String host) /在给定主机名的情况下,根 /据系统上配置的名称服务返回 /其所有IP地址getLocalHost() /返回本地主机getByAddress(byte addr) /给定原始IP地址返回InetAddressgetByAddress(String host, byte addr) /给定主机名和IP地址 /创建 InetAddress另外该类中的以下几个方法成员经常被用来处理对象实例从而获得相关的网络信息:getAddress() /返回此InetAddress对
3、象的原始IP /地址getCanonicalHostName() /获取此IP地址的完全限定域名String getHostAddress() /返回此IP 地址字符串getHostName() /获取此IP地址的主机名例10.1 给定IP地址和域名,利用InetAddress类获得给定主机名和IP地址,以及处理本地主机信息的例子。/Example 1 of Chapter 10package netipaddressdemo1;import .*;public class NetIpAddressDemo1 public static void main(String args) try /
4、给定IP地址获取主机名 getAddress InetAddress address1 = InetAddress.getByName(9); System.out.println(address1.getHostName(); System.out.println(address1.getCanonicalHostName(); /给定域名构造InetAddress InetAddress address2 = InetAddress.getAllByName(); for(int i = 0; i address2.length; i+) System.out.println(addres
5、s2i); /获取本地机的名称与地址 InetAddress address3 = InetAddress.getLocalHost(); System.out.println(address3); System.out.println(address3.getHostName(); System.out.println(address3.getHostAddress(); catch(UnknownHostException e) System.err.println(e); 二、URL类在HTTP协议中,用URI(Uniform Resource Identifier)来标识Interne
6、t上的数据,而用于指定文档资料在Internet上的确切位置的URI称为URL(Uniform Resource Locator)。包中分别定义了URI类和URL类,用来封装统一资源标识符引用和统一资源定位符引用。使用URL类是定位和检索网络上数据的最简单的方法,它是指向Internet上面的各种资源的指针。URL对象实例可以在应用程序中代表一个网络资源,可以供用户访问资源信息。通常,URL可分成几个部分:协议、主机、端口、文件路径,另外URL后面可能还会有一个由字符“#”指示的“片段”,称为“引用”。URL类提供了如下4个构造方法:URL(String spec)URL(String pro
7、tocol,String host,String file)URL(String protocol,String host,int port,String file)URL(String protocol,String host,int port,String file, URLStreamHandler Handler)其中,spec代表一种URL的表示形式;protocol代表协议;host代表主机;port代表端口;file代表文件路径。还可以利用如下构造方法,通过指定相对路径来构造URL对象:URL(URL context,String spec)URL(URL context,Str
8、ing spec,URLStreamHandler handler)URL对象实例可以在应用程序中代表一个网络资源,可以供用户访问资源信息。通常,URL可分成几个部分:协议、主机、端口、文件路径,另外URL后面可能还会有一个由字符“#”指示的“片段”,称为“引用”。下面的几个方法成员可以分别获取URL的各个部分及主要内容:getProtocol() /获得此URL的协议名称getHost() /获得此URL的主机名getPort() /获得此URL的端口号getFile() /获得此URL的文件名getPath() /获得此URL 的路径部分getRef() /获得此URL的锚点引用getQu
9、ery() /获得此URL的查询部分getUserInfo() /获得此URL的 userInfo 部分getAuthority() /获得此URL的授权部分getDefaultPort() /获得与此URL关联协议的默认端口号getContent() /获得此URL 的内容利用URL检索网络上面的数据时,以下几个方法成员是需要使用的:openStream()方法用于建立由应用程序到URL指向的资源处的连接并返回一个从该资源处读取数据的输入流,可以以原始字节流形式读取资源数据。openConnection()方法返回一个URLConnection对象,它表示到URL所引用的远程对象即网络资源的
10、连接。10.2Internet通信一、Socket通信机制各种网络的服务器(Server)-客户(Client)应用是十分广泛的。套接字Socket是建立服务器-客户通信通道连接的低层机制,是独立于平台的连接。在Socket通信机制中,通过Socket的数据是原始字节流信息,通信双方要约定数据的格式化与解释处理工作。在网络程序设计中使用Socket通信机制使得网络上面的输入输出工作就如同文件的输入输出工作一样,大量的网络编程细节被Socket所隐藏,程序员的工作被大大地简化了。Java语言在包中定义了Socket类代表双向连接中的一端,该包中同时提供了ServerSocket类便于服务器操作。
11、Socket是两个程序之间用来进行双向数据传输的网络通信端点,一般由一个地址加上一个端口号来标识。Socket类的构造方法有如下几个:Socket()Socket(String host,int port)Socket(InetAddress address,int port)Socket(String host,int port,InetAddress localAddr,int localPort)Socket(InetAddress address,int port,InetAddress localAddr, int localPort)下面的几个方法成员是非常常用的:getInetA
12、ddress() /返回套接字连接的地址getInputStream() /返回此套接字的输入流getOutputStream() /返回此套接字的输出流getPort() /返回此套接字连接到的远程端口getLocalPort() /返回此套接字绑定到的本地端口getLocalAddress() /获取套接字绑定的本地地址close() /关闭此套接字Socket通信机制可以完成三项基本功能:扫描网络端口、简单通信和TCP/IP服务器。扫描网络端口:可以使用形如:InetAddress hostadd=InetAddress.getByName(hostname)Socket skt = n
13、ew Socket(hostadd, i)这样的功能语句实现对名为hostname的主机上的端口i的测试,如果该端口不可用,所引用的Socket类的构造方法将抛出IOException。简单通信:可以利用Socket与某个特定的主机通过指定的端口建立连接,之后通过输入输出流进行数据传输,数据传输的基本格式是字节,也可以使用专门的输入输出流类进行字符传输、基本数据类型等操作。TCP/IP服务器:可以使用Socket类和ServerSocket类建立一个服务器,实现服务器和客户端双向信息传输。程序代码分为服务器方和客户方,其基本的操作步骤为:服务器方ServerSocket(端口号)ServerS
14、ocket.accept()Socket()输入输出流工作Socket.close()客户方Socket(主机名,端口号)输入输出流工作Socket.close()二、Datagram通信机制Socket工作方式是一种连接方式,其特点是通信稳定可靠,输入输出操作始终在同一对进程之间进行。数据报Datagram是一种非连接方式,通信数据经过不确定的路径传向目的地,可靠性和正确性都不能保证,可能会重复到达目的地,甚至还可能根本到不了目的地。Java语言通过UDP(User Datagram Protocol)实现Datagram通信机制。在包中定义了DatagramPacket和DatagramSocket两个类用来支持数据报通信。DatagramPacket类表示数据报包,发送方可以用DatagramPacket构造一个数据报,其中包含拟发送的数据和目的地址及端口;接收方可以用DatagramPac
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 四川省德阳市中江县2025-2026学年七年级上学期期末考试数学试题(含答案)
- 【初中语文】《秋天的怀念》课件++统编版语文七年级上册
- 分式专项(课件)中考数学一轮复习讲练测
- 2025-2026学年鲁教版(五四制)数学七年级上册期末模拟试题(含答案)
- 河南省许昌市鄢陵县彭店二中2025-2026学年七年级上册语文期末试卷(含答案 )
- 飞行技术专业
- 11月全球投资十大主线
- 人口分布第一课时课件2025-2026学年高中地理人教版必修二
- 基于MATLAB的四旋翼无人机PID控制研究
- 飞机的科普知识
- 2026中国国际航空招聘面试题及答案
- (2025年)工会考试附有答案
- 2026年国家电投集团贵州金元股份有限公司招聘备考题库完整参考答案详解
- 复工复产安全知识试题及答案
- 中燃鲁西经管集团招聘笔试题库2026
- 资产接收协议书模板
- 数据中心合作运营方案
- 印铁涂料基础知识
- 工资欠款还款协议书
- 石笼网厂施工技术交底
- 新建粉煤灰填埋场施工方案
评论
0/150
提交评论