java基础篇---网络编程(IP与URL)

王朝学院·作者佚名  2016-05-28
窄屏简体版  字體: 小  |  中  |  大  |  超大  

java基础篇---网络编程(ip与URL)一:IP与InetAddress

在Java中支持网络通讯程序的开发,主要提供了两种通讯协议:TCP协议,UDP协议

可靠地连接传输,使用三方握手的方式完成通讯不可靠的连接传输,传输的时候接受方不一定可以接受的到在Java中的所有网络程序的开发类都在java.net包中存在

IP地址简介

IP地址是指互联网协议地址(英语:Internet PRotocol Address,又译为网际协议地址),是IP Address的缩写。IP地址是IP协议提供的一种统一的地址格式,它为互联网上的每一个网络和每一台主机分配一个逻辑地址,以此来屏蔽物理地址的差异。IP地址表示

IP地址是一个32位的二进制数,通常被分割为4个“8位二进制数”(也就是4个字节)。IP地址通常用“点分十进制”表示成(a.b.c.d)的形式,其中,a,b,c,d都是0~255之间的十进制整数。例:点分十进IP地址(100.4.5.6)IP地址格式

IP地址=网络地址+主机地址网络号:用于识别主机所在的网络主机号:用于识别该网络中的主机IP地址中存在掩码的功能主要区分网络号和主机号

IP地址分类

最初设计互联网络时,为了便于寻址以及层次化构造网络,每个IP地址包括两个标识码(ID),即网络ID和主机ID。同一个物理网络上的所有主机都使用同一个网络ID,网络上的一个主机(包括网络上工作站,服务器和路由器等)有一个主机ID与其对应。Internet委员会定义了5种IP地址类型以适合不同容量的网络,即A类~E类。其中A、B、C3类(如下表格)由InternetNIC在全球范围内统一分配,D、E类为特殊地址。

类别

最大网络数

IP地址范围

最大主机数

私有IP地址范围

A

126(2^7-2)

0.0.0.0-127.255.255.255

16777214

10.0.0.0-10.255.255.255

B

16384(2^14)

128.0.0.0-191.255.255.255

65534

172.16.0.0-172.31.255.255

C

2097152(2^21)

192.0.0.0-223.255.255.255

254

192.168.0.0-192.168.255.255

特殊的网址每一个字节都为0的地址(“0.0.0.0”)对应于当前主机;IP地址中的每一个字节都为1的IP地址(“255.255.255.255”)是当前子网的广播地址;IP地址中凡是以“11110”开头的E类IP地址都保留用于将来和实验使用。IP地址中不能以十进制“127”作为开头,该类地址中数字127.0.0.1到127.255.255.255用于回路测试,如:127.0.0.1可以代表本机IP地址,用“http://127.0.0.1”就可以测试本机中配置的Web服务器。网络ID的第一个8位组也不能全置为“0”,全“0”表示本地网络。InetAddress

InetAddress类主要表示IP地址,这个类有两个子类:Inet4Address,Inet6Address,一个用于表示IPV4,另一个表示IPV6协议

随着网络上的主机越来越多,IPV4地址不足够表示,然后产生了IPV6了

InetAddress类的具体方法可查询API

本机IP查询

package com.oumyye.网络编程;import java.net.InetAddress ;public class InetAddressDemo{ public static void main(String args[]) throws Exception {// 所有异常抛出 InetAddress locAdd = null ; locAdd = InetAddress.getLocalHost() ;// 得到本机 System.out.println("本机的IP地址:" + locAdd.getHostAddress()) ; System.out.println("本机是否可达:" + locAdd.isReachable(5000)) ; }};

URL

统一资源定位符是对可以从互联网上得到的资源的位置和访问方法的一种简洁的表示,是互联网上标准资源的地址。互联网上的每个文件都有一个唯一的URL,它包含的信息指出文件的位置以及浏览器应该怎么处理它。,可以直接使用此类找到互联网上的资源

package com.oumyye.网络编程;import java.net.URL ;import java.io.InputStream ;import java.util.Scanner ;public class URLDemo{ public static void main(String args[]) throws Exception { // 所有异常抛出 URL url = new URL("http","www.baidu.com",80,"/") ; InputStream input = url.openStream() ; // 打开输入流 Scanner scan = new Scanner(input) ; // 实例化Scanner类 scan.useDelimiter("\n") ; // 设置读取分隔符 while(scan.hasNext()){ System.out.println(scan.next()) ; } }};

URLConnection是封装远程网络资源的一般方法类,通过它可以与远程服务器连接,检查远程资源的一些属性

package com.oumyye.网络编程;import java.net.URL ;import java.net.URLConnection ;import java.io.InputStream ;import java.util.Scanner ;public class URLConnectionDemo{ public static void main(String args[]) throws Exception { // 所有异常抛出 URL url = new URL("http://www.oumyye.com") ; URLConnection urlCon = url.openConnection() ; // 建立连接 System.out.println("内容大小:" + urlCon.getContentLength()) ; System.out.println("内容类型:" + urlCon.getContentType()) ; }};

URLEncoder与URLDecocder

具体内容

Encoder最早是从电报中而来,使用Encoder进行编码,而使用Decoder进行解码操作在网络中常存在这样的编码和解码的操作。

在使用URL访问的时候,经常会看到在地址之后会有很多其他的附带信息。

例如:http://www.baidu.com/index.php?tn=87041025_adr&ch=33

编码实例

package com.oumyye.网络编程;import java.net.URLDecoder ;import java.net.URLEncoder ;public class CodeDemo{ public static void main(String args[]) throws Exception{ String keyWord = "偶my耶" ; String encod = URLEncoder.encode(keyWord,"UTF-8") ; // 进行编码的操作 System.out.println("编码之后的内容:" + encod) ; String decod = URLDecoder.decode(encod,"UTF-8") ; // 进行解码操作 System.out.println("解码之后的内容:" + decod) ; }};

 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
© 2005- 王朝網路 版權所有 導航