一: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

特殊的网址

  1. 每一个字节都为0的地址(“0.0.0.0”)对应于当前主机;
  2. IP地址中的每一个字节都为1的IP地址(“255.255.255.255”)是当前子网的广播地址;
  3. IP地址中凡是以“11110”开头的E类IP地址都保留用于将来和实验使用。
  4. IP地址中不能以十进制“127”作为开头,该类地址中数字127.0.0.1到127.255.255.255用于回路测试,如:127.0.0.1可以代表本机IP地址,用“http://127.0.0.1”就可以测试本机中配置的Web服务器。
  5. 网络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) ;}
};

转载于:https://www.cnblogs.com/oumyye/p/4266021.html

java基础篇---网络编程(IP与URL)相关推荐

  1. java基础(网络编程---IP、端口、URL)

    IP地址 用来标识网络中的一个通信实体的地址.通信实体可以是计算机.路由器等.  IP地址分类 IPV4:32位地址,以点分十进制表示,如192.168.0.1 IPV6:128位(16个字节)写成8 ...

  2. java基础篇---网络编程(UDP程序设计)

    UDP程序设计 在TCP的索引操作都必须建立可靠地连接,这样一来肯定会浪费大量的系统性能,为了减少这种开销,在网络中又提供了另外一种传输协议---UDP,不可靠的连接,这种协议在各个聊天工具中被广泛的 ...

  3. JAVA基础11 网络编程

    JAVA基础 11.网络编程 1.什么是网络?网络模型?网络四要素? 1.网络 在计算机领域中网络是信息传输,接收,共享的虚拟平台,通过它把各个点,面,体的联系到一起,从而实现这些资源的共享. 资源的 ...

  4. Java基础:网络编程

    1. 网络编程概述 自从互联网诞生以来,现在基本上所有的程序都是网络程序,很少有单机版的程序了. 计算机网络就是把各个计算机连接到一起,让网络中的计算机可以互相通信.网络编程就是如何在程序中实现两台计 ...

  5. Java基础6网络编程

    12.1 基本概念 如今,计算机已经成为人们学习.工作.生活必不可少的工具.我们利用计算机可以和亲朋好友网上聊天,也可以玩网游.发邮件等等,这些功能实现都离不开计算机网络.计算机网络实现了不同计算机之 ...

  6. Java基础之网络编程

    网络编程 1.1 网络编程的基本概念 1.网络 将不同区域的电脑连接到一起,组成局域网.城域网或广域网.把分布在不同地理区域的计算机与专门的外部设备用通信线路互联成一个规模大.功能强的网络系统,从而使 ...

  7. java基础:网络编程(一)简介

    网络编程简介 这些知识点在学习计算机网络时都有详细讲,我这就简单介绍下,具体的看计算机网络相关知识. 1.软件结构 常见的软件结构有C/S和B/S C/S (Client/Server) 表示客户端/ ...

  8. 黑马程序员——Java基础:网络编程

    ---android培训.java培训.期待与您交流!  ----   一.网络编程 网络编程:在java.net包中. 网络通信: 1.首先要找到对方的IP. 2.数据要发送到对方指定的应用程序上, ...

  9. Java基础23 网络编程 socket套接字流 TCP传输总结

    一.网络编程的概念 1.计算机网络:将不同地区的计算机,使用网络来进行连接 实现不同地区的数据的交互与共享(互联时代) 2. 网络编程的三要素:IP地址 端口号 协议 3. ip地址:是在网络连接中 ...

最新文章

  1. Linux内核之话说进程
  2. python把list转成字典_python中将list转为dict
  3. switch()语句块的出口:break;
  4. 从WordCount看Spark大数据处理的核心机制(1)
  5. mangos代码阅读
  6. [编程与人生的韵味]注重实效的哲学
  7. C#检测驱动是否安装的问题
  8. icem网格划分如何给内部面网格,ICEM CFD处理混合网格划分中低质量的问题
  9. html5 简单实例源代码
  10. < 数据结构 > 树与二叉树
  11. 编写程序,用户输入日期,计算该日期是这一年的第几天
  12. 写代码后你胖了几斤?(程序员健身的独特方式)
  13. Windows上快速创建一个1G以上的大文件
  14. Node.js卸载与重装,zip与msi安装详解
  15. 浅谈触摸屏技术以及未来的发展趋势
  16. 腾讯的这个框架火了!
  17. FPGA和CPLD对比
  18. Qt开发奇葩问题总集
  19. DCN神州数码交换机端口安全配置命令(纯命令)
  20. Java显示当前月的日历

热门文章

  1. Cannot resolve method ‘getTableEnvironment(org.apache.flink.api.java.ExecutionEnvironment)‘
  2. ubuntu18.10安装linuxqq2.0
  3. 计算机符号的英文名,【常见符号英文名称】英文名称
  4. java 通用方法_java – 类型的通用方法
  5. python数据分析第七章实训3_《利用python进行数据分析》读书笔记--第七章 数据规整化:清理、转换、合并、重塑(三)...
  6. HTML5中本地数据库(SQLLite)的基础
  7. p7zip的解压和压缩
  8. python5数据存储
  9. MongoDB系列:五、MongoDB Driver使用正确的姿势连接复制集
  10. 利用 pywin32 操作 excel