针对网络通信的不同层次,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的更多相关文章

  1. 第84节:Java中的网络编程(中)

    第84节:Java中的网络编程(中) 实现客户端和服务端的通信: 客户端需要的操作,创建socket,明确地址和端口,进行键盘录入,获取需要的数据,然后将录入的数据发送给服务端,为socket输出流, ...

  2. 第78节:Java中的网络编程(上)

    第78节:Java中的网络编程(上) 前言 网络编程涉及ip,端口,协议,tcp和udp的了解,和对socket通信的网络细节. 网络编程 OSI开放系统互连 网络编程指IO加网络 TCP/IP模型: ...

  3. 第62节:探索Java中的网络编程技术

    前言 感谢! 承蒙关照~ 探索Java中的网络编程技术 网络编程就是io技术和网络技术的结合,网络模型的定义,只要共用网络模型就可以两者连接.网络模型参考. 一座塔有七层,我们需要闯关. 第一层物理层 ...

  4. Java中HTTP网络传输中文编码问题

    Java中HTTP网络传输中文编码问题 1.java中new String(str.getBytes("utf-8"),"iso-8859-1")编码详解 前提 ...

  5. Java中的网络编程

    ​ Java中的网路编程主要是Java的Socket编程,属于JavaEE中的高级的部分,以下内容是对java网路编程的一个小结,代码都是经过编译调试的 C/S程序应用:客户/服务器模式,如QQ客户端 ...

  6. Java中获取完整的访问url

    Java中获得完整的URl字符串: HttpServletRequest httpRequest=(HttpServletRequest)request; String strBackUrl = &q ...

  7. Java 中是如何支持正则表达式操作的?

    Java 中的 String 类提供了支持正则表达式操作的方法,包括:matches(). replaceAll().replaceFirst().split().此外,Java 中可以用 Patte ...

  8. [转] JAVA中读取网络中的图片资源导入到EXCEL中

    需求 导出人员的信息并且加上人员的照片至EXCEL中 完整的代码 //创建一个表格 HSSFWorkbook wb = new HSSFWorkbook(); HSSFSheet sheet = wb ...

  9. java基础:网络编程TCP,URL

    获取域名的两种方法: package com.lanqiao.java.test; import java.net.InetAddress;import java.net.UnknownHostExc ...

随机推荐

  1. django的模型类管理器-----------数据库操作的封装

    模型实例方法 str():在将对象转换成字符串时会被调用. save():将模型对象保存到数据表中,ORM框架会转换成对应的insert或update语句. delete():将模型对象从数据表中删除 ...

  2. c++中的类之构造函数

    一.构造函数的缘由 本文我们主要来讲解c++中类的构造函数,其中涉及了深拷贝和浅拷贝的问题,这也是在面试笔试中经常会碰到的问题.如果您是第一次听说构造函数,可能会觉得这个名字有点高大上,而它却和实际中 ...

  3. 【第十九篇】laydate设置起始时间,laydate设置开始时间和结束时间

    laydate设置开始时间后,结束时间不可小于已选择的开始时间 laydate设置结束时间后,开始时间不可小于已选择的结束时间 //设置开始时间 var startDate = laydate.ren ...

  4. python/数据类型和变量

    数据类型和变量 数据类型 计算机顾名思义就是可以做数学计算的机器,因此,计算机程序理所当然地可以处理各种数值.但是, 计算机能处理的远不止数值,还可以处理文本.图形.音频.视频.网页等各种各样的数据, ...

  5. requests-模拟登陆

    import requests requests.get('http://httpbin.org/cookies/set/number/123456') response = requests.get ...

  6. Thinkphp框架下封装文件下载函数

    第一步:开启php_fileinfo.dll 方法:打开php.ini,将874行的;extension=php_fileinfo.dll前面的分号注释去掉即可: 第二步:控制层封装文件下载函数 fu ...

  7. ABP公共结构

    1.ABP依赖注入 维基百科说:“依赖注入是一种软件设计模式,指一个或多个依赖(或服务)被注入,或通过引用传递,传入一个依赖对象(或客户端)并成为客户状态的一部分.模式通过自身的行为分离了客户依赖的创 ...

  8. thinkjs升级到3.0后的图片上传

    似乎当thinkjs升级到3.0后,才接手了一个项目.只是在实际运用过程中,还是发现了与2.2的些许差别——今天先分享关于图片上传的一些问题. 1.上传文件,我们选择了jQuery的插件:http:/ ...

  9. Struts2笔记分享(一)

    Struts2概述1.简介Struts就是在Model2的基础上实现的一个MVC框架,它只有一个中心控制器,采用XML定制的转向的URL,采用Action来处理逻辑.2.Struts2的MVC模式MV ...

  10. 使用Autofac,提示重写成员“Autofac.Integration.Mvc.AutofacDependencyResolver.GetService(System.Type)”时违反了继承安全性规则。重写方法的安全可访问性必须与所重写方法的安全可访问性匹配。

    接触Autofac大概有2天左右,第2天,亲自动手搭建demo,搭完,以为大功告成的时候,提示了这个错误,网上找了很多方法,都没有解决. 为以后的朋友,避免踩坑,分享一下我的解决方法. Dmeo我是新 ...