InetAddress类和InetSocketAddress类
InetAddress 类
封装计算机的 IP 地址,不包含端口号
InetAddress 类常用的方法
1 String getHostAddress() 获得 IP 地址
2 String getHostName() 获得主机名
3 static InetAddress getByName(String host) 根据主机名获得 IP 地址
import java.net.InetAddress;
import java.net.UnknownHostException; public class TestInetAddress { public static void main(String[] args) throws UnknownHostException { InetAddress localHost = InetAddress.getLocalHost(); //本机
System.out.println("本机IP地址:" + localHost.getHostAddress());
System.out.println("本机名称:" + localHost.getHostName()); //根据域名得到InetAddress对象
InetAddress bd = InetAddress.getByName("www.baidu.com");
System.out.println("百度服务器地址:" + bd.getHostAddress());
System.out.println("百度服务器名称:" + bd.getHostName()); //根据IP地址得到InetAddress对象
InetAddress ia = InetAddress.getByName("39.130.131.42");
System.out.println("服务器主机IP:" + ia.getHostAddress());
//如果39.130.131.42IP地址不存在或者DNS(域名解析系统)不允许进行IP地址和域名的映射,就会直接返回域名地址
System.out.println("主机名称" + ia.getHostName());
} }
运行结果:

-------------------------------------------------------------------------
InetSocketAddress 类
此类用于实现 IP 套接字地址 (IP 地址+端口号),用于socket 通信
InetSocketAddress 类常用的方法
1 InetAddress getAddress() 获取 InetAddress 对象
2 int getPort() 获取端口号
3 String getHostName() 获取主机名
import java.net.InetAddress;
import java.net.InetSocketAddress;
import java.net.UnknownHostException; public class TestInetSocketAddress { public static void main(String[] args) throws UnknownHostException { //创建对象
InetSocketAddress is1 = new InetSocketAddress("localhost", 9999);
InetSocketAddress is2 = new InetSocketAddress("127.0.0.1", 9999);
InetSocketAddress is3 = new InetSocketAddress("192.168.136.1", 9999); InetAddress ia = InetAddress.getByName("192.168.136.1");
InetSocketAddress is4 = new InetSocketAddress(ia, 9999);
System.out.println("主机名称:" + is4.getHostName());
System.out.println("主机IP地址:" + is4.getAddress());
} }

-----------------------------------------------------------------------------------------------------------------------------
URL类
URL(Uniform Resource Locator)统一资源定位符,由 4 部分组成:协议 、存放资源的主机域名、端口号和资源文件名。
URL 是指向互联网“资源”的指针资源可以是简单的文件或目录,也可以是对更为复杂的对象的引用,例如对数据库或搜索引擎的查询
URL 类常用方法
1 String getProtocal() 获取此 URL 的协议名称
2 String getHost() 获取此 URL 的主机名(如果适用)
3 int getPort() 获取 URL 的端口号
4 String getFile() 获取此 URL 的文件名
5 getDefaultPort() 获取与此 URL 关联协议的默认端口号
6 getPath() 获取此 URL 的路径部分
import java.net.MalformedURLException;
import java.net.URI;
import java.net.URL; public class TestUrl {
public static void main(String[] args) throws MalformedURLException { URL url = new URL("https://www.baidu.com:80/index.html");
System.out.println("协议名称:" + url.getProtocol());
System.out.println("主机名称:" + url.getHost());
System.out.println("端口号:" + url.getPort()); //URL不指明端口号则getPort()返回-1
System.out.println("获取资源路径:" + url.getFile());
System.out.println("获取资源路径:" + url.getPath());
System.out.println("获取默认端口:" + url.getDefaultPort());
} }

-------------------------------------------------------------------------------------------------------
openStream()方法 打开到此 URL 的连接并返回一个用于从该连接读入的InputStream
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.net.MalformedURLException;
import java.net.URL; public class TestUrl2 {
public static void main(String[] args) throws IOException {
/**网络爬虫
* (1)从网络上获取资源
* (2)存储到本机
*/
//(1)创建URL对象
URL url = new URL("https://www.baidu.com"); //获取主页资源
//(2)获取字节输入流
InputStream is = url.openStream();
//(3)缓冲流
BufferedReader br = new BufferedReader(new InputStreamReader(is, "utf-8"));
//(4)存储到本地
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(new FileOutputStream("F://index.html"), "utf-8"));
//(5)边读边写
String line = null;
while( (line = br.readLine()) != null) {
bw.write(line); //写入
bw.newLine(); //换行
bw.flush(); //清空缓冲区
}
//(6)关闭流
bw.close();
br.close();
} }
InetAddress类和InetSocketAddress类的更多相关文章
- [19/04/14-星期日] 网络编程_java.net包(InetAddress类、InetSocketAddress类、URL类)
一.概念 Java为了可移植性,不允许直接调用操作系统,而是由java.net包来提供网络功能.Java虚拟机负责提供与操作系统的实际连接. InetAddress 作用:封装计算机的IP地址和 ...
- Socket类 以及 ServerSocket类 讲解
Socket类 套接字是网络连接的端点,套接字使应用可以从网络中读取数据,可以向网络中写入数据.不同计算机上的两个应用程序可以通过连接发送或接收字节流,以此达到相互通信的目的. 为了从一个应用程序向另 ...
- ipv4与ipv6 Inet4Address类和Inet6Address类
在设置本地IP地址的时候,一些人会疑惑IPv4与IPv6的区别是什么?下面由学习啦小编为你分享ipv4与ipv6的区别的相关内容,希望对大家有所帮助. ipv4与ipv6的区别 在windows 7以 ...
- JS面向对象(1) -- 简介,入门,系统常用类,自定义类,constructor,typeof,instanceof,对象在内存中的表现形式
相关链接: JS面向对象(1) -- 简介,入门,系统常用类,自定义类,constructor,typeof,instanceof,对象在内存中的表现形式 JS面向对象(2) -- this的使用,对 ...
- 【转】UML类图与类的关系详解
UML类图与类的关系详解 2011-04-21 来源:网络 在画类图的时候,理清类和类之间的关系是重点.类的关系有泛化(Generalization).实现(Realization).依赖(D ...
- Java如何解决脆弱基类(基类被冻结)问题
概述 大多数好的设计者象躲避瘟疫一样来避免使用实现继承(extends 关系).实际上80%的代码应该完全用interfaces写,而不是通过extends.“JAVA设计模式”一书详细阐述了怎样用 ...
- 类A have-a 类B,类B访问类A public 成员
需求是类A中包含类B,而类B又需要访问类A的public属性的成员. 首先类B中要访问类A的属性,那么对于类B而言,我们必须要知道有类A这个类,所以在类B的具体实现之前我们需要前向声明类A. 对于类A ...
- UML(一) 类图及类间关系
原创文章,同步发自作者个人博客,http://www.jasongj.com/uml/class_diagram/ UML类图 UML类图介绍 在UML 2.*的13种图形中,类图是使用频率最高的UM ...
- JAVA正则表达式:Pattern类与Matcher类详解(转)
java.util.regex是一个用正则表达式所订制的模式来对字符串进行匹配工作的类库包.它包括两个类:Pattern和Matcher Pattern 一个Pattern是一个正则表达式经编译后的表 ...
随机推荐
- AppBoxFuture(六): 前端组件化开发
前面几篇都是在介绍结构化与非结构化的数据存储,本篇换换口味介绍一下框架是如何实现前端组件化开发的.首先得感谢Vue.ElementUI等优秀的前端开源项目,这些项目帮助作者快速实现了框架的两个前端 ...
- 【.NET Core项目实战-统一认证平台】第十一章 授权篇-密码授权模式
[.NET Core项目实战-统一认证平台]开篇及目录索引 上篇文章介绍了基于Ids4客户端授权的原理及如何实现自定义的客户端授权,并配合网关实现了统一的授权异常返回值和权限配置等相关功能,本篇将介绍 ...
- Mysql中Count函数的正确使用
备注: 直接使用Count(*)或Count(1)这些大家基本都会,主要是Count函数还可以加满足表达式的统计:express 关于Count函数表达式的用法,目前个人只知道2种: a:使用:Cou ...
- 【WebAPI No.3】API的访问控制IdentityServer4
介绍: IdentityServer是一个OpenID Connect提供者 - 它实现了OpenID Connect和OAuth 2.0协议.是一种向客户发放安全令牌的软件. 官网给出的功能解释是: ...
- Java开发笔记(二十五)方法的输入参数
前面通过main方法介绍了方法的定义形式,对于方法的输入参数来说,还有几个值得注意的地方,接下来分别对输入参数的几种用法进行阐述.一个方法可以有输入参数,也可以没有输入参数,倘若无需输入参数,则方法定 ...
- Android破解学习之路(十一)—— 关于去更新
根据对话框的文字找到对应的对话框,设置visability 为gone 修改版本号,aptool 搜索http://,找到更新的地址,修改为127.0.0.0 搜索update,upgrade,ver ...
- C# 定时器-System.Timers.Timer
using Newtonsoft.Json; using Rafy; using Rafy.Domain; using System; using System.Collections.Generic ...
- JavaScript是如何工作的:使用MutationObserver跟踪DOM的变化
摘要: 掌握MutationObserver. 这是专门探索 JavaScript 及其所构建的组件的系列文章的第10篇. 如果你错过了前面的章节,可以在这里找到它们: JavaScript 是如何工 ...
- 【20190405】JavaScript-整理一些常用正则式
匹配中文字符: let reg=/([\u4E00-\u9FFF]+)/; //\u代表Unicode编码 匹配电话号码: let reg=/^1[34578]\d{9}$/; 给每三位数字添加一个逗 ...
- Django数据库--事务及事务回滚
数据库的读写操作中,事务在保证数据的安全性和一致性方面起着关键的作用,而回滚正是这里面的核心操作.Django的ORM在事务方面也提供了不少的API.有事务出错的整体回滚操作,也有基于保存点的部分回滚 ...