Java中的网络支持InetAddress&URL

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

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

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

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

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

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

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

Java中的网络支持InetAddress&URL的相关文章

黑马程序员————java中的网络编程

------<a href="http://www.itheima.com" target="blank">Java培训.Android培训.iOS培训..Net培训</a>.期待与您交流! ------- java中的网络编程 一.网络编程概述:基于互联网的编程 就是用来实现网络互连的不同计算机上运行的程序间可以进行数据交换. 二.网络模型:OSI和TCP/IP 1.OSI(Open System Interconnection开放系统互连

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

前言 感谢! 承蒙关照~ 探索Java中的网络编程技术 网络编程就是io技术和网络技术的结合,网络模型的定义,只要共用网络模型就可以两者连接.网络模型参考. 一座塔有七层,我们需要闯关. 第一层物理层->第二层数据链路层->第三层网络层->第四层传输层->第五层会话层->第六层表示层->第七层应用层. 物理层是主要定义物理设备标准,数据链路层是主要讲从物理层接收的数据进行MAC地址(网卡的地址)的封装与解封装.这层的数据较帧. 网络层是将从下层接收到的数据进行IP地址的

java中的网络编程基本回顾

网络编程基本概念,TCP/IP协议简介 网络基础知识 网络编程的目的就是指直接或间接地通过网络协议与其他计算机进行通讯.网络编程中有两个主要的问题,一个是如何准确的定位网络上一台或多台主机,另一个就是找到主机后如何可靠高效的进行数据传输.在TCP/IP协议中IP层主要负责网络主机的定位,数据传输的路由,由IP地址可以唯一地确定Internet上的一台主机.而TCP层则提供面向应用的可靠的或非可靠的数据传输机制,这是网络编程的主要对象,一般不需要关心IP层是如何处理数据的. 目前较为流行的网络编程

Java中的网络编程

Java中的网路编程主要是Java的Socket编程,属于JavaEE中的高级的部分,以下内容是对java网路编程的一个小结,代码都是经过编译调试的 C/S程序应用:客户/服务器模式,如QQ客户端,客户端连到服务器上,一个C/S模式的应用必须有两套程序,一个是客户端的程序,一个是服务器程序. B/S程序应用:浏览器/服务器模式,如当下的各种网站都是B/S模式,所有的程序代码都在服务器上,用户通过浏览器去访问. C/S程序分为两种: 基于TCP协议:Socket(套接字), 可靠的编程: A->B

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

前言 网络编程涉及ip,端口,协议,tcp和udp的了解,和对socket通信的网络细节. 网络编程 OSI开放系统互连 网络编程指IO加网络 TCP/IP模型: 应用层 传输层 网际层 主机到网络层 OSI模型:(封装) 网络1封包->网络2拆包 应用层 表示层 会话层 传输层 网络层 数据链路层 物理层 网络通讯要素: ip地址 端口号 传输协议 主机名和ip地址是对应的,默认的主机名:localhost java.net 类 InetAddress java.lang.Object ->

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

实现客户端和服务端的通信: 客户端需要的操作,创建socket,明确地址和端口,进行键盘录入,获取需要的数据,然后将录入的数据发送给服务端,为socket输出流,然后进行读取服务端发送回来的大写数据,为socket读取流,最后进行客户端显示器的显示,进行读写操作,关闭资源. 网络编程TCP客户端 package com.dashucoding.tcp3; import java.io.BufferedReader; import java.io.BufferedWriter; import ja

Java中的网络编程-2

Socket编程:(一般的网络编程) <1> 两个 JAVA 应用程序可通过一个双向的网络通信连接, 实现数据交换, 这个双向链路的一段称为一个 Socket. <2> Socket 通常用来实现 Client-Server 连接. <3> java.net 包中定义的两个类 Socket 和 ServerSocket(阻塞式), 分别用来实现双向连接的 Client 和 Server 端. <4> 建立连接时, 所需的寻址信息为远程计算机的 IP 地址和端

java基础:网络编程TCP,URL

获取域名的两种方法: package com.lanqiao.java.test; import java.net.InetAddress;import java.net.UnknownHostException; public class testInetAddress { public static void main(String[] args) throws Exception { InetAddress inet=InetAddress.getByName("www.atguigu.c

Android中解析网络请求的URL

最近正在做Android网络应用的开发,使用了android网络请求方面的知识,现在向大家介绍网络请求方面的知识,我们知道android中向服务器端发送一个请求,(这就是我们通常所说的POST请求),我们要发送一个完整的URL,然后服务器端接收到这个URL,对这个URL进行特定的解析,就是对URL进行解析,转化为JSON数据,然后,我们只要处理这个JSON数据就可以了. 我现在就用我的项目实例来体现解析URL的过程: 1.组装URL的过程: private String getOrderPayU