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是一个正则表达式经编译后的表 ...
随机推荐
- Netty源码分析(四):EventLoopGroup
无论服务端或客户端启动时都用到了NioEventLoopGroup,从名字就可以看出来它是NioEventLoop的组合,是Netty多线程的基石. 类结构 NioEventLoopGroup继承自M ...
- jmeter 分布式压测(windows)
单台压测机通常会遇到客户端瓶颈,受制于客户机的性能.可能由于网络带宽,CPU,内存的限制不能给到服务器足够的压力,这个时候你就需要用到分布式方案来解决客户机的瓶颈,压测的结果也会更加接近于真实情况. ...
- Django学习笔记(7)——单表操作和多表操作
单表操作 1,创建模型 创建名为book的APP,在book下的models.py中创建模型: from django.db import models # Create your models he ...
- 痞子衡嵌入式:飞思卡尔Kinetis开发板OpenSDA调试器那些事(上)- 背景与架构
大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家介绍的是飞思卡尔Kinetis MCU开发板板载OpenSDA调试器(上篇). 众所周知,嵌入式软件开发几乎离不开调试器,因为写一个稍有代码规模 ...
- Puppet部署Nginx返代示例
一.创建目录并编辑Nginx安装模块 mkdir -pv /etc/puppet/modules/nginx/{manifests,files,templates,spec,tests,lib} ]# ...
- 基于MVC的网站和在线教育系统
最近老表说要创业,想要做一个网站做宣传,还想要一个在线教育系统. 学习了一部分 Java, 决定用.Net MVC做官网或直接做成静态HTML网站,主要是因为.Net MVC 技术简单,效率高,需求 ...
- js cookie存取
if(getCookie('guide') == 'true'){ window.location.href='' } else { setCookie('guide','true'); } func ...
- Linux设备驱动之IIO子系统——Triggered buffer support触发缓冲支持
Triggered buffer support触发缓冲支持 在许多数据分析应用中,能够基于某些外部信号(触发器)捕获数据是比较有用的. 这些触发器可能是: 数据就绪信号 连接到某个外部系统的IRQ线 ...
- Java中的会话Cookie&&Session
会话技术 会话: 一次会话中包含多次请求和响应. 一次会话:浏览器第一次给服务器资源发送请,会话建立,直到有一方断开为止 功能:在一次会话的范围内的多次请求之间共享数据 方式: 客户端会话技术:coo ...
- 自定义工作流活动运行产生System.Security.SecurityException
摘要: 微软动态CRM专家罗勇 ,回复305或者20190224可方便获取本文,同时可以在第一间得到我发布的最新博文信息,follow me!我的网站是 www.luoyong.me . 最近碰到一个 ...