java--网络编程-基础知识

java为网络支持提供了java.net包,该包下的URL和URLConnection等类提供了以编程方式访问Web服务的功能,而URLDecoder和URLEncoder则提供了普通字符串和appliction/x-www-form-urlencoded MIME 字符串相互转换的静态方法。

使用InetAddress类(实现的接口是Serializable序列化接口):

java提供了InetAddress类代表IP地址,InetAddress下还有两个子类:Inet4Address、Inet6Address,他们分别代表IPv4和IPv6地址。

InetAddress没有提供构造器,而是提供了如下两个静态方法来获取InetAddress实例。

1、getByName(String host):根据主机获取对应的InetAddress对象。

2、getByAddress(byte[] addr):根据原始IP地址来获取对应的InetAddress对象。

static InetAddress[] getAllByName(String host) 
          在给定主机名的情况下,根据系统上配置的名称服务返回其 IP 地址所组成的数组。
static InetAddress getByAddress(byte[] addr) 
          在给定原始 IP 地址的情况下,返回 InetAddress 对象。
static InetAddress getByAddress(String host, byte[] addr) 
          根据提供的主机名和 IP 地址创建 InetAddress。
static InetAddress getByName(String host) 
          在给定主机名的情况下确定主机的 IP 地址。

InetAddress还提供了如下三个方法来获取InetAddress实例对应的IP地址和主机名。

1、String getCanonicalHostName():获取此IP地址的全限定域名。

2、String getHostAddress():返回该InetAddress实例对应的IP地址字符串(以字符串形式).

3、String getHostName():获取此IP地址的主机名。

除此之外,InetAddress类还提供了一个getLocalHost()方法来获取本机IP地址对应的InetAddress实例。

InetAddress类还提供了一个isReachable()方法,用于测试是否可以到达该地址,该方法将尽最大努力试图到达主机。

 1 import java.net.InetAddress;
 2 public class InetAddressClass
 3 {
 4     public static void main(String[] arg) throws Exception{
 5         //根据主机名来获取对应的InetAddress实例
 6         InetAddress ip=InetAddress.getByName("www.baidu.com");
 7         //判断是否可到达
 8         System.out.println("baidu是否可达到:"+ip.isReachable(2000));
 9         //获得该InetAddress实例的IP字符串
10         System.out.println(ip.getHostAddress());
11         //根据原始IP地址来获取对应的InetAddress实例
12         InetAddress local=InetAddress.getByAddress(new byte[]{127,0,0,1});
13         //判断主机是否可到达
14         System.out.println("本机主机是否可以到达:"+local.isReachable(2000));
15         //获取该InetAddress实例对用的全限定域名
16         System.out.println(local.getCanonicalHostName());
17     }
18 }
时间: 2024-10-22 03:00:42

java--网络编程-基础知识的相关文章

Java网络编程和NIO详解开篇:Java网络编程基础

Java网络编程和NIO详解开篇:Java网络编程基础 计算机网络编程基础 转自:https://mp.weixin.qq.com/s/XXMz5uAFSsPdg38bth2jAA 我们是幸运的,因为我们拥有网络.网络是一个神奇的东西,它改变了你和我的生活方式,改变了整个世界. 然而,网络的无标度和小世界特性使得它又是复杂的,无所不在,无所不能,以致于我们无法区分甚至无法描述. 对于一个码农而言,了解网络的基础知识可能还是从了解定义开始,认识OSI的七层协议模型,深入Socket内部,进而熟练地

Java网络编程基础(六)— 基于TCP的NIO简单聊天系统

在Java网络编程基础(四)中提到了基于Socket的TCP/IP简单聊天系统实现了一个多客户端之间护法消息的简单聊天系统.其服务端采用了多线程来处理多个客户端的消息发送,并转发给目的用户.但是由于它是基于Socket的,因此是阻塞的. 本节我们将通过SocketChannel和ServerSocketChannel来实现同样的功能. 1.客户端输入消息的格式 username:msg    username表示要发送的的用户名,msg为发送内容,以冒号分割 2.实现思路 实现思路与Java网络

Java网络编程基础【转】

网络编程 网络编程对于很多的初学者来说,都是很向往的一种编程技能,但是很多的初学者却因为很长一段时间无法进入网络编程的大门而放弃了对于该部分技术的学习. 在 学习网络编程以前,很多初学者可能觉得网络编程是比较复杂的系统工程,需要了解很多和网络相关的基础知识,其实这些都不是很必需的.首先来问一个问题:你 会打手机吗?很多人可能说肯定会啊,不就是按按电话号码,拨打电话嘛,很简单的事情啊!其实初学者如果入门网络编程的话也可以做到这么简单! 网络编程就是在两个或两个以上的设备(例如计算机)之间传输数据.

【转】JAVA网络编程基础

转来自己学习用 转自http://www.cnblogs.com/springcsc/archive/2009/12/03/1616413.html 网络编程 网络编程对于很多的初学者来说,都是很向往的一种编程技能,但是很多的初学者却因为很长一段时间无法进入网络编程的大门而放弃了对于该部分技术的学习. 在 学习网络编程以前,很多初学者可能觉得网络编程是比较复杂的系统工程,需要了解很多和网络相关的基础知识,其实这些都不是很必需的.首先来问一个问题:你 会打手机吗?很多人可能说肯定会啊,不就是按按电

Java网络编程基础

一.Java网络编程 网络编程在如今这样的网络时代是十分重要的,Java语言提供了丰富的类库来支持网络编程.这里将重点介绍Java.net中的类,充分了解认识Java网络编程的原理并深入学习各模块.在学习Java网络编程之前首先需要具备一定的网络知识:网络的层次结构,常见的网络协议(TCP/IP),IP地址端口号等等.需要学习了解这些内容,可以参考前面的文章. 二.主机地址和IP地址 在进行网络访问时,每个主机都有IP地址,也有主机名(域名),为了便于处理与之相关的问题,Java.net包中提供

Java网络编程和NIO:Java网络编程基础

转自: https://www.cnblogs.com/midiyu/p/7875574.html 关于网络 网络协议 如同人与人之间相互交流是需要遵循一定的规矩一样,计算机之间能够进行相互通信是因为它们都共同遵守一定的规则,即网络协议. 网络体系结构 计算机网络是个复杂的系统,按照人们解决复杂问题的方法,把计算机网络实现的功能分到不同的层次上,层与层之间用接口连接.通信的双方具有相同的层次,层次实现的功能由协议数据单元(PDU)来描述.不同系统中的同一层构成对等层,对等层之间通过对等层协议进行

Java网络编程基础(二)-- 基于TCP/IP的Socket编程

本节讲点: 客户端套接字:Socket:Socket的创建和使用方法,以及Socket选项和异常. 服务端套接字:ServerSocket:SeverSocket的创建和使用方法,以及ServerSocket选项 简单的Client/Server对话程序 支持多客户端的Client/Server服务响应程序 在学习JDK的网络编程之前先要了解一下网络基础知识和网络协议. TCP(传输控制协议)一种基于连接的通信协议.可靠传输 UDP(用户数据包协议)不稳定连接的通信协议 TCP和UDP的端口如下

Java网络编程基础(一)

Java SDK提供一些相对简单的API来完成网络功能,这些API存在于java.net包里面,Java所提供的网络功能可大致分为三类. 基于HTTP协议的网络编程:这是三大类功能中最高级的一种.通过URL的网络资源表达方式,很容易确实网络上数据的位置.利用URL和URLConnection,Java程序可以直接读入网络上所放的数据,或者自己的数据传送到网络的另一端 基于TCP/IP协议的Socket编程:可以想象成两个不同的程序通过网络的通道,而这时传统网络程序中的最常用的方法.一般在TCP/

windows socket网络编程基础知识

下面介绍网络7层协议在WINDOWS的实现: 7层协议 WIN系统 ________________________________________ 7 应用层 7 应用程序 ________________________________________________ 6 表示层 6 WINSOCK API(DLL) ___________________________________________ 5 会话层 5 SPI(DLL) ___________________________

Java 之 网络编程基础知识

一.网络的概念和分类 1.概念 计算机网络:把分布在不同地里区域的计算机与专门的外部设备用通信线路互连成一个规模大.功能强的网络系统,从而使众多的计算机可以方便地互相传递信息.共享硬件.软件.数据信息等资源. 2.分类 (1)按照网络的传输介质划分: 双绞线网.同轴电缆网.光纤网.卫星网.还有无线传输(WiFi传输介质是红外线.蓝牙传输介质是无线电波等) (2)按照网络的拓扑结构划分: 星型网络.总线网络.环线网络.树型网络.网状网络.混合型网络等. (3)按照规模来划分 局域网(Local A