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 ...
随机推荐
- 使用 Angular CLI 和 Webpack 分析包尺寸
使用 Angular CLI 和 Webpack 分析包尺寸 对于 Web app 来说,高性能总是最高优先级,对于 Angular 也不例外.但是随着应用复杂度的不断增长,我们如何才能知道哪些内容打 ...
- python实现 多叉树 寻找最短路径
完全原创,能力有限,欢迎参考,未经允许,请勿转载 ! 完全原创,能力有限,欢迎参考,未经允许,请勿转载 ! 完全原创,能力有限,欢迎参考,未经允许,请勿转载 ! 完全原创,能力有限,欢迎参考,未经允许 ...
- Excel as a Service —— Excel 开发居然可以这么玩
前言 据不完全统计,全世界使用Excel作为电子表格和数据处理的用户数以十亿计,这不仅得益于它的使用简便,同时还因为它内置了很多强大的函数,结合你的想象力可以编写出各种公式,并可快速根据数据生成图表和 ...
- python爬虫——分析天猫iphonX的销售数据
01.引言 这篇文章是我最近刚做的一个项目,会带领大家使用多种技术实现一个非常有趣的项目,该项目是关于苹果机(iphoneX)的销售数据分析,是网络爬虫和数据分析的综合应用项目.本项目会分别从天猫和京 ...
- 学习React系列(七)——Fragments、Portals、Error Boundaries与WEB组件
React.Fragment portals Error Boundaries WEB组件 React.Fragment 想象一个场景,想把td包装为组件添加到table中去,代码如下: class ...
- Spring boot 整合 Mybatis (完整版)
最近工作上时间有点多,然后自己就学习了一下Spring boot,外加上Mybatis,在实际开发中都是比较常用的,所以这篇写一下SpringBoot整合Mybatis. 一.数据准备 CREATE ...
- 技巧:如何提升Oracle用户密码的安全性
环境:Oracle 11.2.0.4 客户需求:主要背景是数据库中有很多业务用户名,且由于部分用户缺乏安全意识,甚至直接将自己的密码设置为和用户名一样,目前客户期望密码设置不要过于简单,最起码别和用户 ...
- java创建线程的三种方法
这里不会贴代码,只是将创建线程的三种方法做个笼统的介绍,再根据源码添加上自己的分析. 通过三种方法可以创建java线程: 1.继承Thread类. 2.实现Runnable接口. 3.实现Callab ...
- js保留整数
1.丢弃小数部分,保留整数部分parseInt(5/2) 2.向上取整,有小数就整数部分加1 Math.ceil(5/2) 3,四舍五入. Math.round(5/2) 4,向下取整 Math.fl ...
- 参考用bat文件
@echo off rem *************** start of 'main' set DEBUG= " (set TRACE=echo) else (set TRACE=rem ...