网络编程
1、网络编程的两个问题:
①如何准确定位到网络上的一台或多台主机
②定位到主机后如何进行通信
2、网络编程的要素
①IP和端口号
IP有IPV4和IPV6
IPV4又分为ABCDE四种类型
②网络通信协议,TCP/UDP
3、端口
端口号为0-65535(16位)
TCP,UDP : 不同协议的端口号可以相同,也就是可以有65535*2个端口
端口分类
公有端口 0-1023
http : 80
https : 443
ftp : 21
Telent : 23
程序注册端口 : 1024-49151,分配用户或者程序
Tomcat : 8080
Mysql : 3306
Oracle :1521
动态、私有 : 49152-65535
Cmd中netstat-ano可以查看端口号
4、通信协议
TCP/IP协议簇(包含两个协议)
①TCP:用户传输协议 (类似打电话,不会有数据丢失)
三次握手,四次挥手
握手是建立链接的过程,挥手是断开链接的过程
三次握手:
一、A:向B发出链接请求
二、B:回应A的请求
三、A:与B建立链接
四次挥手:
一、A:向B请求断开链接
二、B:询问A是否请求断开链接
三、B:再次询问是否断开
四、A:确认断开
客户端、服务端
传输完成,释放链接,效率低
②UDP:用户数据报协议 (类似发短信,可能有数据丢失)
客户端和服务端没有明确区分
无论接收端有无准备,发送端都可以发送
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-W3QBkao5-1626182908239)(file:///C:\Users\利姆鲁\AppData\Local\Temp\ksohtml14944\wps1.jpg)]
5、TCP链接
客户端
\1. 链接服务器
\2. 发送消息
服务端
\1. 建立服务的端口
\2. 等待用户链接的accept
\3. 接受消息
6、Tomcat
Tomcat作为服务端(java后台开发)
而网页作为客户端(即浏览器)
构成B/S架构
7、UDP链接
没有明确的客户端和服务端的区分
只要发送端和接收端的端口号可以对应即可
8、URL
URL的组成:协议+IP+端口+项目名
格式:协议//+IP:端口/项目名(成分只能少不能多)
可以使用URL进行资源的下载