之前的博客带领大家学习Java SE的基础知识,今天带领大家学习计算机网络编程的知识。
1.计算机网络的概述:
-
计算机网络是指将地理位置不同的具有独立功能的多台计算机及其外部设备,通过通信线路连接起来,在网络操作系统,网络管理软件及网络通信协议的管理和协调下,实现资源共享和信息传递的计算机系统。
-
计算机网络主要是由一些通用的、可编程的硬件互连而成的,而这些硬件并非专门用来实现某一特定目的(例如,传送数据或视频信号)。这些可编程的硬件能够用来传送多种不同类型的数据,并能支持广泛的和日益增长的应用。
2.网络编程的目的:
- 传播交流信息,数据交换,通信。
3.网络通信的要素
- 通信双方的地址:IP地址和端口号。
- 规则:网络通信的协议
4.IP地址
IP地址:InetAddress
-
唯一定位一台网络上计算机
-
127.0.0.1:本机的localhost
-
ip地址的分类
-
ipv4/ipv6
- IPV4 192.168.100.100 , 4个字节组成(32位)。
- IPV6 128位。8个无符号整数!
-
公网(互联网) - 私网(局域网)
- 根据网络的标识长度进行区分,A类为8位、B类为16位、C类为24位、D类位多播地址。
- 根据网络的标识长度进行区分,A类为8位、B类为16位、C类为24位、D类位多播地址。
-
-
域名:记忆IP的问题!
public class TestInetAddress {
public static void main(String[] args) {
try {
//查询本机地址
InetAddress inetAddress1=InetAddress.getByName("127.0.0.1");
System.out.println(inetAddress1);
InetAddress inetAddress3=InetAddress.getByName("localhost");
System.out.println(inetAddress3);
InetAddress inetAddress4=InetAddress.getLocalHost();
System.out.println(inetAddress4);
//查询网站ip地址
InetAddress inetAddress2=InetAddress.getByName("www.baidu.com");
System.out.println(inetAddress2);
//常用方法
System.out.println(inetAddress2.getAddress());
System.out.println(inetAddress2.getCanonicalHostName());
System.out.println(inetAddress2.getHostAddress());
System.out.println(inetAddress2.getHostName());
} catch (UnknownHostException e) {
e.printStackTrace();
}
}
}
5.端口
端口号表示计算机上的一个程序的进程;
-
不同的进程有不同的端口号,用来区分软件!
-
端口被规定在0~65535的范围。
-
端口的分类
- 公有端口:0~1023
- HTTP:80
- HTTPS:443
- FTP:21
- Telent:23
- 程序注册端口:1024~49151,分配用户或者程序。
- Tomcat:8080
- MySQL:3306
- Oracle:1521
- 动态、私有:49152~65535
netstat -ano #查看所有的端口 netstat -ano |findstr "5900" # 查看指定的端口 tasklist |findstr "8696" # 查看指定端口的进程
public class TestInetSocketAddress { public static void main(String[] args) { InetSocketAddress socketAddress=new InetSocketAddress("127.0.0.1",8080); InetSocketAddress socketAddress1=new InetSocketAddress("localhost",8080); System.out.println(socketAddress); System.out.println(socketAddress1); System.out.println(socketAddress.getAddress()); System.out.println(socketAddress.getHostName()); System.out.println(socketAddress.getPort()); } }
- 公有端口:0~1023
6.通信协议
-
网络通信协议是一种网络通用语言,为连接不同操作系统和不同硬件体系结构的互联网络引提供通信支持,是一种网络通用语言。
-
例如,网络中一个微机用户和一个大型主机的操作员进行通信,由于这两个数据终端所用字符集不同,因此操作员所输入的命令彼此不认识。为了能进行通信,规定每个终端都要将各自字符集中的字符先变换为标准字符集的字符后,才进入网络传送,到达目的终端之后,再变换为该终端字符集的字符。因此,网络通信协议也可以理解为网络上各台计算机之间进行交流的一种语言。
-
TCP协议:打电话
- 连接,稳定
- 三次握手、四次挥手
- 客户端、服务端
- 传输完成,释放连接,效率低
-
UDP协议:发短信
- 不连接,不稳定
- 客户端和服务端没有明确的界限。