针对网络通信的不同层次,Java提供的网络功能有四大类

InetAddress:用于标识网络上的硬件资源。(说白了就是IP地址的相关信息)

URL:统一资源定位符,通过URL可以直接读取或写入网络上的数据

Sockets:使用TCP协议实现网络通信的Socket相关的类

Datagram:使用UDP协议,将数据保存在数据报中,通过网络进行通信。(通过在网络中发送数据报进而实现网络的通信)

InetAddress类用于标识网络上的硬件资源,表示互联网协议(IP)协议。

  1. package zhang;
  2.  
  3. import java.io.BufferedReader;
  4.  
  5. import java.io.IOException;
  6.  
  7. import java.io.InputStream;
  8.  
  9. import java.io.InputStreamReader;
  10.  
  11. import java.net.InetAddress;
  12.  
  13. import java.net.MalformedURLException;
  14.  
  15. import java.net.URL;
  16.  
  17. import java.net.UnknownHostException;
  18.  
  19. import java.util.Arrays;
  20.  
  21. /**
  22.  
  23. * InetAddress类*/
  24.  
  25. public class Main {
  26.  
  27. public static void main(String [] args) throws UnknownHostException {
  28.  
  29. // TODO Auto-generated constructor stub
  30.  
  31. //获取本机的IP地址
  32.  
  33. InetAddress address=InetAddress.getLocalHost();
  34.  
  35. System.out.println("计算机名:"+address.getHostName());
  36.  
  37. System.out.println("IP地址:"+address.getHostAddress());
  38.  
  39. byte [] bytes=address.getAddress();
  40.  
  41. System.out.println("字节数组形式的IP"+Arrays.toString(bytes));
  42.  
  43. System.out.println(address);//直接输出InetAddress对象
  44.  
  45. //根据主机名获取InetAddress实例
  46.  
  47. InetAddress address2=InetAddress.getByName("www.baidu.com");
  48.  
  49. System.out.println(address2);
  50.  
  51. //(URL) Uniform(统一的) Resource(资源) Locator(定位符,探测器)
  52.  
  53. //表示Internet上某一资源的地址
  54.  
  55. /**
  56.  
  57. * URL由两部分组成:协议名称和资源名称,中间用冒号隔开。http://www.baidu.com
  58.  
  59. *
  60.  
  61. * */
  62.  
  63. //创建URL的实例
  64.  
  65. try {
  66.  
  67. URL imooc=new URL("http://www.imooc.com");
  68.  
  69. //根据已有的URL创建新的URL
  70.  
  71. //?后面的是传递的参数其中#后面的是锚点
  72.  
  73. URL url=new URL(imooc,"/index.html?username=tom#test");
  74.  
  75. System.out.println("协议:"+url.getProtocol());//获取协议信息
  76.  
  77. System.out.println("主机:"+url.getHost());//主机信息
  78.  
  79. //如果未指定端口号则根据协议的不同使用默认的端口号 http使用的是80端口
  80.  
  81. //getPort返回值为-1
  82.  
  83. System.out.println("端口:"+url.getPort());//获取端口号
  84.  
  85. /**
  86.  
  87. * 协议:http
  88.  
  89. * 主机:www.imooc.com
  90.  
  91. * 端口:-1
  92.  
  93. * */
  94.  
  95. System.out.println("文件路径:"+url.getPath());
  96.  
  97. System.out.println("文件名:"+url.getFile());
  98.  
  99. System.out.println("相对路径"+url.getRef());
  100.  
  101. System.out.println("查询字符串"+url.getQuery());
  102.  
  103. /**
  104.  
  105. * 文件路径:/index.html
  106.  
  107. * 文件名:/index.html?username=tom
  108.  
  109. * 相对路径test
  110.  
  111. * 查询字符串username=tom
  112.  
  113. * */
  114.  
  115. } catch (MalformedURLException e) {
  116.  
  117. // TODO Auto-generated catch block
  118.  
  119. e.printStackTrace();
  120.  
  121. }
  122.  
  123. /**
  124.  
  125. * 使用URL读取网页内容
  126.  
  127. * 1.通过URL对象的openStream()方法可以得到指定资源的输入流
  128.  
  129. * 2.通过输入流可以读取、访问网络上的资源
  130.  
  131. * */
  132.  
  133. //创建URL实例
  134.  
  135. try {
  136.  
  137. URL url2=new URL("http://www.baidu.com");
  138.  
  139. InputStream is=url2.openStream();
  140.  
  141. //将字节输入流转换成字符输入流
  142.  
  143. InputStreamReader isr=new InputStreamReader(is,"utf-8");
  144.  
  145. //为字符输入流添加缓冲,提高效率
  146.  
  147. BufferedReader bis=new BufferedReader(isr);
  148.  
  149. String data=bis.readLine();//读取数据
  150.  
  151. while(data!=null){//循环读取数据
  152.  
  153. System.out.print(data);//输出数据
  154.  
  155. data=bis.readLine();
  156.  
  157. }//读取到的是百度首页的源代码
  158.  
  159. } catch (MalformedURLException e) {
  160.  
  161. // TODO Auto-generated catch block
  162.  
  163. e.printStackTrace();
  164.  
  165. } catch (IOException e) {
  166.  
  167. // TODO Auto-generated catch block
  168.  
  169. e.printStackTrace();
  170.  
  171. }
  172.  
  173. }
  174.  
  175. }

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. ibatis的优缺点及可行性分析

    1.优点 简单: 易于学习,易于使用,通过文档和源代码,可以比较完全的掌握它的设计思路和实现. 实用: 提供了数据映射功能,提供了对底层数据访问的封装(例如ado.net),提供了DAO框架,可以使我 ...

  2. WPF项目学习.四

    信息收录项目 版权声明:本文为博主初学经验,未经博主允许不得转载. 一.前言 记录在学习与制作WPF过程中遇到的解决方案.  需求文案.设计思路.简要数据库结构.简要流程图和明细代码,动图细化每步操作 ...

  3. python基础-循环

    循环 循环 要计算1+2+3,我们可以直接写表达式: >>> 1 + 2 + 3 6 要计算1+2+3+...+10,勉强也能写出来. 但是,要计算1+2+3+...+10000,直 ...

  4. semver(Semantic Versioning)

    Based on semver, you can use Hyphen Ranges X.Y.Z - A.B.C 1.2.3-2.3.4 Indicates >=1.2.3 <=2.3.4 ...

  5. java字符串类型常量拼接与变量拼接的区别

    前言 首先看下下面代码结果是什么? package cn.demo_01; public class StringDemo02 { public static void main(String[] a ...

  6. 史上最全TensorFlow学习资源汇总

    来源 | 悦动智能(公众号ID:aibbtcom) 本篇文章将为大家总结TensorFlow纯干货学习资源,非常适合新手学习,建议大家收藏. ▌一 .TensorFlow教程资源 1)适合初学者的Te ...

  7. Python系列-python函数(functools)

    有一些函数内置到了functools这个模块里 partial(func, *args, **keywords) from functools import partial def add(x,y): ...

  8. 百度API-------热力图

    <!DOCTYPE html><html><head> <meta http-equiv="Content-Type" content=& ...

  9. [AtCoder arc090E]Avoiding Collision

    Description 题库链接 给出一张 \(N\) 个节点, \(M\) 条边的无向图,给出起点 \(S\) 和终点 \(T\) .询问两个人分别从 \(S\) 和 \(T\) 出发,走最短路不相 ...

  10. [Codeforces 448C]Painting Fence

    Description Bizon the Champion isn't just attentive, he also is very hardworking. Bizon the Champion ...