网络编程
网络通信
-
如何实现网络的通信:
- 通信双方的地址:IP + 端口号
-
规则:网络通信的协议
- http、ftp文件上传、smtp发送文件、tcp、udp
-
TCP/IP参考模型
-
如何准确定位到网络上的一台或多台主机(地址)
- ping www.baidu.com(域名),会返回一个IP地址
-
找到主机之后如何进行通信
IP
-
IP:唯一定位一台网络上的计算机
-
域名:为了解决记忆IP问题。
- IP:www.vip.com(好多钱)
- .com是国际域名,.cn是中国域名
-
ipconfig查看本机IP(windows),mac下用ifconfig查看,,会看到以太网(看到的都是局域网IP,不可能看到公网否则别人可以入侵了)
-
127.0.0.1:本机(localhost)
- 没有网也ping的通的一个IP
-
IP地址的分类,有两种分类方法,一种是IPV4/IPV6,另一种是公网-私网
- IPV4/IPV6
- IPV4:四个字节组成,每个字节长度0-255,大概42亿个(30亿都在北美,亚洲4亿,2011年就用尽了),比如:127.0.0.1
- IPV6: IPV6地址:fe80::915d:470e:d522:4339%16(4个,这个不全,应该有8位),128位,8个无符号整数,比如:
2001:0bb2:aaaa:0015:0000:0000:1aaa:1312
- 公网-私网
- IP地址分为A、B、C、D、E类。https://www.jb51.net/network/579228.html
- 公网:给互联网使用
- 私网:给局域网使用的。192.168.xxx.xxx:一般是局域网,专门给组织内部使用的
- IPV4/IPV6
端口
-
表示计算机上的一个程序的进程
-
一栋楼相当于一个IP,里面每家人相当于端口
-
不同的进程有不同的端口号,用来区分软件
-
端口被规定0-65535
- TCP、UDP:65535*2,每个都是0~65535
- 单个协议下端口号不能冲突。(比如TCP用了80,那么UDP也是可以用80的)
-
端口分类:
-
公有端口(公认端口):0~1023,尽量不要占用,一般会被内置进程或服务器使用。HTTP默认端口80,HTTPS443、FTP21、SSH远程连接22、Telent远程监听23(访问:https://www.baidu.com/相当于http://www.baidu.com:80、http://www.baidu.com:443、https://www.baidu.com:443)
-
程序注册端口:1024~49151,分配给用户或者程序的。Tomcat8080、MySQL3306、Oracle1521
-
动态端口(私有端口):49152~65535,一般不要占用
-
-
常见DOS命令
netstat -ano #查看所有端口
netstat -ano|findstr "5900" #查看指定的端口
tasklist|findstr "8696" #查看指定端口的进程(这个是QQ.exe)(端口用任务管理器查询,ctrl+shift+ESC)
|:是管道符号(过滤)
通信协议
-
网络通信协议:速率、传输码率、代码结构、传输控制等
-
TCP/IP协议簇(是一组协议)
- TCP:用户传输协议
- UDP:用户数据报协议
- IP:网络互联协议
文件上传
-
服务器端
-
客户端
Tomcat
服务端:
-
自定义去做S(自己写的服务)
-
可以通过Tomcat浏览器去写服务器S:JAVA后台开发
客户端:
-
自定义C
-
浏览器B
URL
-
统一资源定位符:定位资源的,定位互联网上的某一个资源
-
格式:协议://IP地址:端口/项目名/资源
学习路径
https://www.bilibili.com/video/BV1LJ411z7vY?p=3&spm_id_from=pageDriver