Java中的网络支持InetAddress&URL
针对网络通信的不同层次,Java提供的网络功能有四大类
InetAddress:用于标识网络上的硬件资源。(说白了就是IP地址的相关信息)
URL:统一资源定位符,通过URL可以直接读取或写入网络上的数据
Sockets:使用TCP协议实现网络通信的Socket相关的类
Datagram:使用UDP协议,将数据保存在数据报中,通过网络进行通信。(通过在网络中发送数据报进而实现网络的通信)
InetAddress类用于标识网络上的硬件资源,表示互联网协议(IP)协议。
package zhang;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.InetAddress;
import java.net.MalformedURLException;
import java.net.URL;
import java.net.UnknownHostException;
import java.util.Arrays;
/**
* InetAddress类*/
public class Main {
public static void main(String [] args) throws UnknownHostException {
// TODO Auto-generated constructor stub
//获取本机的IP地址
InetAddress address=InetAddress.getLocalHost();
System.out.println("计算机名:"+address.getHostName());
System.out.println("IP地址:"+address.getHostAddress());
byte [] bytes=address.getAddress();
System.out.println("字节数组形式的IP"+Arrays.toString(bytes));
System.out.println(address);//直接输出InetAddress对象
//根据主机名获取InetAddress实例
InetAddress address2=InetAddress.getByName("www.baidu.com");
System.out.println(address2);
//(URL) Uniform(统一的) Resource(资源) Locator(定位符,探测器)
//表示Internet上某一资源的地址
/**
* URL由两部分组成:协议名称和资源名称,中间用冒号隔开。http://www.baidu.com
*
* */
//创建URL的实例
try {
URL imooc=new URL("http://www.imooc.com");
//根据已有的URL创建新的URL
//?后面的是传递的参数其中#后面的是锚点
URL url=new URL(imooc,"/index.html?username=tom#test");
System.out.println("协议:"+url.getProtocol());//获取协议信息
System.out.println("主机:"+url.getHost());//主机信息
//如果未指定端口号则根据协议的不同使用默认的端口号 http使用的是80端口
//getPort返回值为-1
System.out.println("端口:"+url.getPort());//获取端口号
/**
* 协议:http
* 主机:www.imooc.com
* 端口:-1
* */
System.out.println("文件路径:"+url.getPath());
System.out.println("文件名:"+url.getFile());
System.out.println("相对路径"+url.getRef());
System.out.println("查询字符串"+url.getQuery());
/**
* 文件路径:/index.html
* 文件名:/index.html?username=tom
* 相对路径test
* 查询字符串username=tom
* */
} catch (MalformedURLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
/**
* 使用URL读取网页内容
* 1.通过URL对象的openStream()方法可以得到指定资源的输入流
* 2.通过输入流可以读取、访问网络上的资源
* */
//创建URL实例
try {
URL url2=new URL("http://www.baidu.com");
InputStream is=url2.openStream();
//将字节输入流转换成字符输入流
InputStreamReader isr=new InputStreamReader(is,"utf-8");
//为字符输入流添加缓冲,提高效率
BufferedReader bis=new BufferedReader(isr);
String data=bis.readLine();//读取数据
while(data!=null){//循环读取数据
System.out.print(data);//输出数据
data=bis.readLine();
}//读取到的是百度首页的源代码
} catch (MalformedURLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
Java中的网络支持InetAddress&URL的更多相关文章
- 第84节:Java中的网络编程(中)
第84节:Java中的网络编程(中) 实现客户端和服务端的通信: 客户端需要的操作,创建socket,明确地址和端口,进行键盘录入,获取需要的数据,然后将录入的数据发送给服务端,为socket输出流, ...
- 第78节:Java中的网络编程(上)
第78节:Java中的网络编程(上) 前言 网络编程涉及ip,端口,协议,tcp和udp的了解,和对socket通信的网络细节. 网络编程 OSI开放系统互连 网络编程指IO加网络 TCP/IP模型: ...
- 第62节:探索Java中的网络编程技术
前言 感谢! 承蒙关照~ 探索Java中的网络编程技术 网络编程就是io技术和网络技术的结合,网络模型的定义,只要共用网络模型就可以两者连接.网络模型参考. 一座塔有七层,我们需要闯关. 第一层物理层 ...
- Java中HTTP网络传输中文编码问题
Java中HTTP网络传输中文编码问题 1.java中new String(str.getBytes("utf-8"),"iso-8859-1")编码详解 前提 ...
- Java中的网络编程
Java中的网路编程主要是Java的Socket编程,属于JavaEE中的高级的部分,以下内容是对java网路编程的一个小结,代码都是经过编译调试的 C/S程序应用:客户/服务器模式,如QQ客户端 ...
- Java中获取完整的访问url
Java中获得完整的URl字符串: HttpServletRequest httpRequest=(HttpServletRequest)request; String strBackUrl = &q ...
- Java 中是如何支持正则表达式操作的?
Java 中的 String 类提供了支持正则表达式操作的方法,包括:matches(). replaceAll().replaceFirst().split().此外,Java 中可以用 Patte ...
- [转] JAVA中读取网络中的图片资源导入到EXCEL中
需求 导出人员的信息并且加上人员的照片至EXCEL中 完整的代码 //创建一个表格 HSSFWorkbook wb = new HSSFWorkbook(); HSSFSheet sheet = wb ...
- java基础:网络编程TCP,URL
获取域名的两种方法: package com.lanqiao.java.test; import java.net.InetAddress;import java.net.UnknownHostExc ...
随机推荐
- MYSQL之索引原理与慢查询优化
一.索引 1.介绍 一般的应用系统,读写比例在10:1左右,而且插入操作和一般的更新操作很少出现性能问题,在生产环境中,我们遇到最多的也是最容易出现问题的,还是一些复杂的查询操作,因此对查询语句的优化 ...
- H5的canvas绘图技术
canvas元素是HTML5中新添加的一个元素,该元素是HTML5中的一个亮点.Canvas元素就像一块画布,通过该元素自带的API结合JavaScript代码可以绘制各种图形和图像以及动画效果. 1 ...
- 原生js的一些研究和总结(1)
数据类型 基本类型值包括: undefined,null,Boolean,Number和String,这些类型分别在内存中占有固定的大小空间,它们的值保存在栈空间,我们通过按值来访问的. 引用类型包括 ...
- Eclipse代码块折叠插件,安装使用
在代码编写中经常会遇到一些很长的set(xxx)的代码,非常影响体验. 而Eclipse的folding插件可以自定义的将代码块进行折叠. 效果如下图所示: 可以根据代码块的功能来进行折叠,从而保证代 ...
- java中String类学习笔记
1.String的两种实例化方式 String str="hello";//直接赋值的方式: String str=new String("hello");// ...
- Jenkins持续集成演示
1.去我们的仓库修改一下代码 为了节约时间,我直接在网页上改了. 我们把布局页的footer信息改一下: 然后提交. 2.切换到Jenkins可以看到已经在构建了 等待构建完成. 3.访问我们部署的地 ...
- 解决IOS移动端 Safari流浪器 onclick无法触发的问题
在移动端布局的时候, 在底部有一个button, 页面超过两屏, 是一个可滚动的的网页, 当运行在移动端Safari浏览器上的时候, 向下滑动页面, 浏览器的头部和尾部会自动隐藏, 这样可视区域就会变 ...
- 【webstorm使用手册】如何安装插件
Files->Settings, 搜索"plugin",如图,
- python爬虫——爬取小说 | 探索白子画和花千骨的爱恨情仇(转载)
转载出处:药少敏 ,感谢原作者清晰的讲解思路! 下述代码是我通过自己互联网搜索和拜读完此篇文章之后写出的具有同样效果的爬虫代码: from bs4 import BeautifulSoup imp ...
- Shiro集成Web
Shiro不仅可以集成到web中,也可以集成Spring. 1.在WEB中添加Shrio支持 2.WEB中INI配置 3.JSP/GSP标签 在WEB中添加Shrio支持 如果要想在web中使用Shr ...