IP地址
IP是互联网上的每一台计算机都有得一个唯一表示自己的标记
分类:
- IPv4:32位,分4段,(每段的范围0-255)0-255之间的十进制表示。如:192.168.1.1(这4段组成的个数有限度,不够用,出现Ipv6)
- IPv6:128位,分8段,0000~FFFF的十六进制数值,冒号分割,如:1080:0:0:0:8:800:200C:417A
Java对基本网络的支持
1.InetAddress类要来表示IP地址,有两个子类
- Inet4Address(IPv4)
- Inet6Address(IPv6)
2.常用方法(主要了解获得IP地址对象的方法)
- static InetAddress getLocalHost() 返回本地主机
- static InetAddress getByName(String host) 在给定主机名的情况下确定主机的 IP 地址,查找局部网内部存在的一个IP地址,如果没有知道到跑出异常
- static InetAddress getByAddress(byte[] addr) 根据一个ip地址获得一个IP地址对象,没有进行查找的
- boolean isReachable(int timeout) 测试是否可以达到该地址(类似ping)
示例:
public class Demo1 {
public static void main(String[] args) throws IOException {
//获取本机ip
InetAddress ip1 = InetAddress.getLocalHost();
System.out.println(ip1);
//通过ip名获取ip
InetAddress ip2 = InetAddress.getByName("localhost");
System.out.println(ip2);
//通过byte数组获取ip
InetAddress ip3 = InetAddress.getByAddress(new byte[]{(byte) 10, (byte) 185, (byte) 127, (byte) 22});
System.out.println(ip3);
//测试是否可以到达该地址
System.out.println(ip1.isReachable(5000));
}
}
结果:
端口
什么是端口?
如果把IP地址比作一间房子 ,端口就是出入这间房子的门。真正的房子只有几个门,但是一个IP地址的端口,可以有65536(即:2^16)个之多!端口是通过端口号来标记的,端口号只有整数,范围是从0 到65535(2^16-1)。
简单的说:一个电脑上的应用程序都绑定了一个对应的编号(端口),通过IP可以定位到指定的主机(电脑),再加上端口就可以定位到指定的程序了。
注意: 同一台机器上不能有两个程序使用同一个端口,会冲突。
URL(统一资源定位符)
URL(Uniform Resource Locator)统一资源定位符,可以直接使用此类找到互联网上的资源如一个简单的网页。 一般由:协议名,资源所在主机,端口,资源名等部分组成;如:baidu.com:80/class_info/…
URLEncoder与URLDecoder
字符串编码与解码
public class Demo1 {
public static void main(String[] args) throws IOException {
//编码
String encode = URLEncoder.encode("天天进步!","utf-8");
System.out.println(encode);
//解码
String decode = URLDecoder.decode(encode,"utf-8");
System.out.println(decode);
}
}
结果:
TCP与UDP的区别
- 基于连接与无连接 ;
- 对系统资源的要求(TCP较多,UDP少) ;
- UDP程序结构较简单 ;
- 流模式与数据报模式 ;
- TCP保证数据正确性,UDP可能丢包,TCP保证数据顺序,UDP不保证;
TCP协议:
- 基于链接
- 安全可靠
- 字节流
- 慢点 UDP协议
- 报文
- 不连接
- 不安全
- 速度快
http协议
- Request请求对象【一问】
- 请求头信息
- Response相应对象【一答】
- 响应头的信息