- 浏览: 467970 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (272)
- java基础 (59)
- struts (8)
- spring (8)
- 数据库 (8)
- java 网络编程 (29)
- hibernate (3)
- JavaScript (10)
- 日志管理 (2)
- jsp (4)
- servlet (7)
- xml (4)
- ajax (2)
- web service (4)
- 算法与数据结构 (13)
- java 反射机制 (11)
- java 泛型 (3)
- java I/O (8)
- java 线程 (12)
- JavaEE (6)
- java解惑 (33)
- 工具 (5)
- MyEclipse编程实践 (1)
- OSGI (2)
- 设计模式 (9)
- 正则表达式 (0)
- EJB (3)
- Ubuntu linux (6)
- Android (1)
- web前端 (2)
- 找工作 (1)
- SCA (1)
- maven (1)
- 缓存 (1)
- json (1)
- javamail (1)
- 工作笔记 (2)
最新评论
-
霜花似雪:
博主可以分享一下源码吗?
使用maven构建web项目实例 -
王庆波-行:
很好的demo!
memcache使用实例 -
surpassno:
大写的牛逼
java可视化显示内存使用情况 -
zhulin0504:
怎么访问NetEcho.html页面呀???
applet与servlet的网络通信 -
springdata:
java多线程实例demo源代码下载:http://www.z ...
java多线程例子
InetAddress类在网络API套接字编程中扮演了一个重要角色。
参数传递给流套接字类和自寻址套接字类构造器或非构造器方法。InetAddress描述了32位或64位IP地址,要完成这个功能,InetAddress类主要依靠两个支持类Inet4Address 和 Inet6Address,这三个类是继承关系,InetAddrress是父类,Inet4Address 和 Inet6Address是子类。
由于InetAddress类只有一个构造函数,而且不能传递参数,所以不能直接创建InetAddress对象,比如下面的做法就是错误的:
InetAddress ia = new InetAddress ();
但我们可以通过下面的5个工厂方法创建来创建一个InetAddress对象或InetAddress数组:
. getAllByName(String host)方法返回一个InetAddress对象的引用,每个对象包含一个表示相应主机名的单独的IP地址,这个IP地址是通过host参数传递的,对于指定的主机如果没有IP地址存在那么这个方法将抛出一个UnknownHostException 异常对象。
. getByAddress(byte [] addr)方法返回一个InetAddress对象的引用,这个对象包含了一个Ipv4地址或Ipv6地址,Ipv4地址是一个4字节数组,Ipv6地址是一个16字节地址数组,如果返回的数组既不是4字节的也不是16字节的,那么方法将会抛出一个UnknownHostException异常对象。
. getByAddress(String host, byte [] addr)方法返回一个InetAddress对象的引用,这个InetAddress对象包含了一个由host和4字节的addr数组指定的IP地址,或者是host和16字节的addr数组指定的IP地址,如果这个数组既不是4字节的也不是16位字节的,那么该方法将抛出一个UnknownHostException异常对象。
. getByName(String host)方法返回一个InetAddress对象,该对象包含了一个与host参数指定的主机相对应的IP地址,对于指定的主机如果没有IP地址存在,那么方法将抛出一个UnknownHostException异常对象。
. getLocalHost()方法返回一个InetAddress对象,这个对象包含了本地机的IP地址,考虑到本地主机既是客户程序主机又是服务器程序主机,为避免混乱,我们将客户程序主机称为客户主机,将服务器程序主机称为服务器主机。
上面讲到的方法均提到返回一个或多个InetAddress对象的引用,实际上每一个方法都要返回一个或多个Inet4Address/Inet6Address对象的引用,调用者不需要知道引用的子类型,相反调用者可以使用返回的引用调用InetAddress对象的非静态方法,包括子类型的多态以确保重载方法被调用。
InetAddress和它的子类型对象处理主机名到主机IPv4或IPv6地址的转换,要完成这个转换需要使用域名系统,下面的代码示范了如何通过调用getByName(String host)方法获得InetAddress子类对象的方法,这个对象包含了与host参数相对应的IP地址:
InetAddress ia = InetAddress.getByName ("www.javajeff.com"));
一但获得了InetAddress子类对象的引用就可以调用InetAddress的各种方法来获得InetAddress子类对象中的IP地址信息,比如,可以通过调用getCanonicalHostName()从域名服务中获得标准的主机名;getHostAddress()获得IP地址,getHostName()获得主机名,isLoopbackAddress()判断IP地址是否是一个loopback地址。
// InetAddressDemo.java
当无命令行参数时,代码输出类似下面的结果:
Canonical Host Name = localhost
Host Address = 127.0.0.1
Host Name = localhost
Is Loopback Address = true
InetAddressDemo给了你一个指定主机名作为命令行参数的选择,如果没有主机名被指定,那么将使用localhost(客户机的),InetAddressDemo通过调用getByName(String host)方法获得一个InetAddress子类对象的引用,通过这个引用获得了标准主机名,主机地址,主机名以及IP地址是否是loopback地址的输出
参数传递给流套接字类和自寻址套接字类构造器或非构造器方法。InetAddress描述了32位或64位IP地址,要完成这个功能,InetAddress类主要依靠两个支持类Inet4Address 和 Inet6Address,这三个类是继承关系,InetAddrress是父类,Inet4Address 和 Inet6Address是子类。
由于InetAddress类只有一个构造函数,而且不能传递参数,所以不能直接创建InetAddress对象,比如下面的做法就是错误的:
InetAddress ia = new InetAddress ();
但我们可以通过下面的5个工厂方法创建来创建一个InetAddress对象或InetAddress数组:
. getAllByName(String host)方法返回一个InetAddress对象的引用,每个对象包含一个表示相应主机名的单独的IP地址,这个IP地址是通过host参数传递的,对于指定的主机如果没有IP地址存在那么这个方法将抛出一个UnknownHostException 异常对象。
. getByAddress(byte [] addr)方法返回一个InetAddress对象的引用,这个对象包含了一个Ipv4地址或Ipv6地址,Ipv4地址是一个4字节数组,Ipv6地址是一个16字节地址数组,如果返回的数组既不是4字节的也不是16字节的,那么方法将会抛出一个UnknownHostException异常对象。
. getByAddress(String host, byte [] addr)方法返回一个InetAddress对象的引用,这个InetAddress对象包含了一个由host和4字节的addr数组指定的IP地址,或者是host和16字节的addr数组指定的IP地址,如果这个数组既不是4字节的也不是16位字节的,那么该方法将抛出一个UnknownHostException异常对象。
. getByName(String host)方法返回一个InetAddress对象,该对象包含了一个与host参数指定的主机相对应的IP地址,对于指定的主机如果没有IP地址存在,那么方法将抛出一个UnknownHostException异常对象。
. getLocalHost()方法返回一个InetAddress对象,这个对象包含了本地机的IP地址,考虑到本地主机既是客户程序主机又是服务器程序主机,为避免混乱,我们将客户程序主机称为客户主机,将服务器程序主机称为服务器主机。
上面讲到的方法均提到返回一个或多个InetAddress对象的引用,实际上每一个方法都要返回一个或多个Inet4Address/Inet6Address对象的引用,调用者不需要知道引用的子类型,相反调用者可以使用返回的引用调用InetAddress对象的非静态方法,包括子类型的多态以确保重载方法被调用。
InetAddress和它的子类型对象处理主机名到主机IPv4或IPv6地址的转换,要完成这个转换需要使用域名系统,下面的代码示范了如何通过调用getByName(String host)方法获得InetAddress子类对象的方法,这个对象包含了与host参数相对应的IP地址:
InetAddress ia = InetAddress.getByName ("www.javajeff.com"));
一但获得了InetAddress子类对象的引用就可以调用InetAddress的各种方法来获得InetAddress子类对象中的IP地址信息,比如,可以通过调用getCanonicalHostName()从域名服务中获得标准的主机名;getHostAddress()获得IP地址,getHostName()获得主机名,isLoopbackAddress()判断IP地址是否是一个loopback地址。
// InetAddressDemo.java
import java.net.*; class InetAddressDemo { public static void main (String [] args) throws UnknownHostException { String host = "localhost"; if (args.length == 1) host = args [0]; InetAddress ia = InetAddress.getByName (host); System.out.println ("Canonical Host Name = " + ia.getCanonicalHostName ()); System.out.println ("Host Address = " + ia.getHostAddress ()); System.out.println ("Host Name = " + ia.getHostName ()); System.out.println ("Is Loopback Address = " + ia.isLoopbackAddress ()); } }
当无命令行参数时,代码输出类似下面的结果:
Canonical Host Name = localhost
Host Address = 127.0.0.1
Host Name = localhost
Is Loopback Address = true
InetAddressDemo给了你一个指定主机名作为命令行参数的选择,如果没有主机名被指定,那么将使用localhost(客户机的),InetAddressDemo通过调用getByName(String host)方法获得一个InetAddress子类对象的引用,通过这个引用获得了标准主机名,主机地址,主机名以及IP地址是否是loopback地址的输出
发表评论
-
计算机网络知识
2011-06-01 16:19 793一个http请求的详细过程 我们来看当我们在浏览器输入htt ... -
java udp socket实例
2010-12-06 12:28 7121客户端: package udp; import jav ... -
线程池实现tcp socket
2010-12-01 17:23 2880前面的程序,当一个客户端请求到来时,服务器端就会临时性的创建一 ... -
tcp socket实例(改进)
2010-12-01 16:16 1592上一篇的程序服务器端只能接受一个客户端请求,本篇改为模拟多客户 ... -
java tcp socket实例
2010-12-01 13:44 1627网络编程的基本模型就是客户端到服务器端模型,一段必须提供一个固 ... -
telnet协议(转)
2010-10-14 17:17 1139我们知道Telnet服务器软 ... -
whois协议(转)
2010-10-14 14:28 1361当我们预备建立一个Web站点,就必须向域名登记机构申请一个In ... -
java 网络协议(一)Tcp多线程服务器端编程
2010-10-14 11:33 54851,通用服务器代码: package multiThread; ... -
java 网络协议(一)UDP
2010-10-14 09:24 1476UDP测试程序,无需建立连接 package udp; ... -
java 网络协议(一)Tcp
2010-10-14 08:52 51371,简化的服务器端程序 package tcp; imp ... -
java 网络协议(一)InetAddress和Socket(含源码)
2010-10-14 08:24 18831,ip地址和主机名互换 package getip; ... -
ftp协议2(转)
2010-10-12 16:26 965FTP协议工作原理 FTP有 ... -
ftp协议(转)
2010-10-12 16:21 1266ftp协议 FTP协议将使用两 ... -
SMTP服务协议(转)
2010-10-11 15:31 1246SMTP服务概述 鉴于本课程的默认读者群是那些对Inter ... -
利用socket发送接收邮件(转)
2010-10-11 15:18 4190这是在网上摘的,执行接收邮件出现:530 Authentica ... -
jdk6.0从入门到精通-----chapter5网络编程 新I/O(含源码下载)
2010-09-21 10:13 1430本例向用户通过参数指定的主机端口发送一段请求报文,然后读取和打 ... -
jdk6.0从入门到精通-----chapter6--http
2010-09-14 16:32 946用httpconnection进行文件下载,建立一般的jav ... -
java自学===Filter类的应用,验证用户
2010-09-14 14:37 940Filter类 package com; import ... -
java自学===Filter类的应用,网站数量统计
2010-09-14 12:31 1940package filterStatistic; imp ... -
jdk6.0从入门到精通-----chapter5网络编程 udp套接字
2010-09-12 13:46 1162用到的主要类DatagramPacket,DatagramSo ...
相关推荐
总的来说,Java中的InetAddress和URL类是网络编程的基础,它们提供了处理网络地址和定位网络资源的便利工具。理解并熟练运用这两个类,可以帮助开发者构建出强大的网络应用。在学习和实践中,不仅要掌握基本的API...
Java网络编程基础 InetAddress类的使用.doc Java网络编程基础 ServerSocket类使用.doc 《JAVA编程规范》.doc Java基础 三步学会Java Socket编程(一) .doc Java基础 三步学会Java Socket编程(二) .doc Java基础 三步...
8. **Java网络类库**: 如InetAddress用于处理IP地址和主机名,URL类用于处理统一资源定位符,SocketAddress表示网络服务的地址。 9. **异常处理**: 在网络编程中,如IOException、SocketException等异常的处理至关...
1. **Java网络编程基础** - **网络编程模型**:Java网络编程基于客户-服务器模型,客户端发起请求,服务器响应。这一模型在Java中通过Socket和ServerSocket类来实现。 - **Java I/O**:网络通信中数据的传输离不开...
1. **Java网络编程基础**:首先,书中会介绍Java中的Socket编程,包括TCP和UDP协议的基础知识,以及如何使用Java的Socket和ServerSocket类创建客户端和服务器端的连接。 2. **I/O与NIO**:Java的I/O流系统是网络...
在Java编程中,了解和使用IP地址以及InetAddress类是非常基础且重要的。IP地址是互联网上每台设备的唯一标识,它由32位二进制数字组成,通常以四段十进制的形式表示。在实际使用中,我们更习惯于使用域名,如...
- **套接字(Sockets)**:Java中的Socket类和ServerSocket类是网络通信的基础,它们分别代表客户端和服务器端的连接。 - **URL(统一资源定位符)**:用于唯一标识网络上的资源,Java提供了URL类来处理和解析URL...
Java网络编程是Java开发中的重要领域,它涵盖了网络通信的所有基本概念和技术...通过阅读《Java网络编程》第三版,开发者可以系统地学习这些知识点,并通过实例加深理解,为构建高效、安全的网络应用程序打下坚实基础。
2. Socket编程基础:介绍Socket类的基本概念,如Socket的创建、连接、关闭等。 Socket类是Java网络编程的核心,用于实现客户端和服务器端之间的网络通信。Socket类提供了多种方法,如connect、accept、send、...
Java网络编程是开发分布式应用程序的基础,它涉及到网络通信的各种协议,如TCP/IP、UDP等。在Java中,`InetAddress`和`Socket`是两个核心类,它们在处理网络连接和通信时起着至关重要的作用。这篇博客将深入探讨这两...
在Java中,Socket类和ServerSocket类是网络编程的核心,它们分别代表客户端和服务器端的连接端点,通过这些类可以建立TCP连接并进行双向通信。 TCP/IP协议是网络通信的基础,Java的java.net包提供了对TCP/IP协议的...
本实验主要涉及Java 网络编程的基础知识,包括使用InetAddress类获取主机的IP地址和主机名称,使用Socket和ServerSocket类实现C/S通信。 一、 InetAddress类 InetAddress类是Java中用于表示Internet协议(IP)地址...
在本教程中,我们将深入探讨Java网络编程的基础知识,包括其原理、API使用以及常见应用。 首先,理解网络编程的基本概念至关重要。网络是通过互联网协议连接的计算机集合,而网络编程就是编写能够通过这些连接交换...
本文将深入探讨标题和描述中提及的几个关键知识点:Java套接字编程、Java的网络功能与编程基础、TCP网络协议以及Java Transaction API。 首先,我们来了解**Java套接字编程**。套接字(Socket)是实现进程间通信的...
Java提供了一系列的类和接口来处理网络功能,如InetAddress类用于处理IP地址,URL类用于处理统一资源定位符,HttpURLConnection类用于HTTP通信。此外,Socket和ServerSocket可以用来创建基于TCP的网络应用,而...
本文将深入探讨Java网络编程的基础,特别是涉及InetAddress类及其子类Inet4Address和Inet6Address。 InetAddress类在Java中扮演着核心角色,它提供了IP地址的抽象,支持IPv4和IPv6两种协议。由于InetAddress只有一...
1. **Java网络编程基础**: - **套接字(Sockets)**:Java通过Socket类和ServerSocket类提供了一种标准的方式来实现客户端-服务器通信。Socket代表了网络上的两个应用程序之间的连接。 - **输入/输出流**:在网络...
Java网络编程基础是学习计算机网络的关键,它涵盖了网络互连的原理和实现方式。网络编程允许不同计算机上的程序之间进行数据交换,这是20世纪最重要的技术成就之一,如同计算机网络对于现代生活的重要性。 网络模型...
【Java网络编程基础】 在Java编程中,网络编程是一个重要的领域,主要涉及到如何通过网络连接进行数据传输。这里我们关注的是TCP Socket通信,这是一种面向连接的、可靠的、基于字节流的传输层通信协议。 1. **...