83 java网络编程_3 _通信协议 TCP协议 TCP协议: Transmi ssion Control Protocol 传输控制协议 是一种面向连接的、可靠的、基于字节流的传输层通信协议。数据大小无限制。建立连接的过程需要三
83 java网络编程_3 _通信协议
TCP协议
- TCP协议: Transmi ssion Control Protocol 传输控制协议
- 是一种面向连接的、可靠的、基于字节流的传输层通信协议。数据大小无限制。建立连接的过程需要三次握手,断开连接的过程需要四次挥手。
UDP协议
- UDP协议: User Datagram Protocol 用户数据报协议
- 是一种无连接的传输层协议,提供面向事务的简单不可靠信息传送服务,每个包的大小64KB。(效率高)
IP协议
- 为 TCPP协议 ,UDP协议提供服务
- IP协议: Internet Protocol 互联网协议/网际协议
- 负责数据从一台机器发送到另一台机器。
- 给互联网每台设备分配一个唯一 标识(IP地址)。
- IP地址分为两种:
- IPV4: 4字节32位整数,并分成4段8位的二进制数,每8位之间用圆点隔开,每8位整数可以转换为一个0~255的十进制整数。
格式: D.D.D.D例如: 255. 255. 255. 255 - IPV6: 16字节128位整数, 并分成8段十六进制数,每16位之间用圆点隔开,每16位整数可以转换为一个0~65535的十进制数。
IPV4的应用分类
- A类:政府机构,10.0.1~ 126.255. 255. 254
- B类:中型企业,128.0.0.1~ 191. 255. 255.254
- C类:个人用户,192.0.0.1~ 223. 255. 255. 254
- D类:用于组播,224.0.0.1~ 239. 255.255. 254
- E类:用于实验,240.0.0.1~ 255. 255. 255. 254
- 回环地址: 127.0.0.1, 指本机,一般用于测试使用。
- 测试IP命令: ping D.D.D.D
- 查看IP命令: ipconfig
port 端口号
- 端口号:在通信实体上进行网络通讯程序的唯一 标识。(区分哪个程序发的信息)
- 端口分类:
- 公认端口:0~ 1023
- 注册端口:1024~49151
- 动态或私有端口:49152~ 65535
- 常用端口:
- MySql: 3306
- Oracle:1521
- Tomcat:8080
- SMTP: 25
- Web服务器: 80
- FTP服务器:21
InetAddress类
- 概念:表示互联网协议(IP)地址对象,封装了与该IP地址相关的所有信息,并提供获取信息的常用方法。
- 方法:
- public static InetAddress getLocalHost() 获得本地主机地址对象
- public static InetAddress getByName (String host) 根据主机名称获得地址对象
- public static InetAddress[] getAllByName (String host) 获得所有相关地址对象
- public String getHostAddress () 获取IP地址字符串
- public String getHostName() 获得IP地址主机名
代码:
package com.wlw.computer_network;import java.net.InetAddress;
/**
* InetAddress类的使用
* (1)创建本机IP地址对象
* (2)创建局域网IP地址对象
* (3)创建外网IP地址对象
*/
public class InetAddressDemo {
public static void main(String[] args) throws Exception{
//1.创建本机IP地址对象
//1.1
InetAddress inetAddress = InetAddress.getLocalHost();
System.out.println("IP地址:"+inetAddress.getHostAddress()+",主机名:"+inetAddress.getHostName());
//1.2
InetAddress inetAddress1 = InetAddress.getByName("192.168.1.31");
System.out.println("IP地址:"+inetAddress1.getHostAddress()+",主机名:"+inetAddress1.getHostName());
//1.3
InetAddress inetAddress2 = InetAddress.getByName("127.0.0.1");
System.out.println("IP地址:"+inetAddress2.getHostAddress()+",主机名:"+inetAddress2.getHostName());
//1.4
InetAddress inetAddress3 = InetAddress.getByName("localhost");
System.out.println("IP地址:"+inetAddress3.getHostAddress()+",主机名:"+inetAddress3.getHostName());
//2.创建局域网IP地址对象
// InetAddress inetAddress4 = InetAddress.getByName("192.168.1.33");
// System.out.println("IP地址:"+inetAddress4.getHostAddress()+",主机名:"+inetAddress4.getHostName());
// System.out.println("两秒是否可达:"+inetAddress4.isReachable(2000));
//3.创建外网IP地址对象
InetAddress inetAddress5 = InetAddress.getByName("www.baidu.com");
System.out.println("IP地址:"+inetAddress5.getHostAddress()+",主机名:"+inetAddress5.getHostName());
System.out.println("两秒是否可达:"+inetAddress5.isReachable(2000));
System.out.println("---------------------");
InetAddress[] allByName = InetAddress.getAllByName("www.baidu.com");
for (InetAddress address : allByName) {
System.out.println(address.getHostAddress());
}
}
}
/*
执行结果:
IP地址:192.168.1.31,主机名:PC-20200703OXSP
IP地址:192.168.1.31,主机名:PC-20200703OXSP
IP地址:127.0.0.1,主机名:ieonline.microsoft.com
IP地址:127.0.0.1,主机名:localhost
IP地址:39.156.66.14,主机名:www.baidu.com
两秒是否可达:true
---------------------
39.156.66.14
39.156.66.18
*/