一. 端口,是什么?为什么要有?
端口是为了将同一个电脑上的不同程序进行隔离。
IP是找电脑
端口是找电脑上的程序
示例:
MySQL是一个软件,软件帮助我们在硬盘上进行文件操作。默认端口:3306
Redis是一个软件,软件帮助我们在内存里进行数据操作。默认端口:6379
网站默认端口:80 ,访问时:http://www.luffycity.com:80
网站默认端口:443 ,访问时:https://www.luffycity.com:443
范围:
1 - 65535
1 - 1024 (被其他占用)
一般情况:
8000
8001
...
二. OSI 7层模型
7层:
自己写的代码:自己代码+框架
应用层,使用软件。 打开软件或网站
表示层,看到数据,如图片和视频。 生产数据:szwwd
会话层,保持登录或链接状态。 应用偷偷携带一点其他数据:令牌 19rRNAwf8GVe6xyT9kJPIu5SlQc
socket模块:
传输层,TCP/UDP [TCP][szwwd|19rRNAwf8GVe6xyT9kJPIu5SlQc]
网络层,IP 【IP】【[TCP][szwwd|19rRNAwf8GVe6xyT9kJPIu5SlQc]】
数据链路层,MAC [MAC][【IP】【[TCP][szwwd|19rRNAwf8GVe6xyT9kJPIu5SlQc]】]
物理层,将数据转换成电信号发送
5层:
应用层
应用层 表示层
会话层
传输层
网络层
数据链路层
物理层
4层:
应用层
应用层 表示层
会话层
传输层
网络层
物理层 数据链路层
物理层
三. TCP三次握手/四次挥手
socket客户端向服务端发起连接请求:三次握手
client.connect((....))
客户端 服务端
我能打你吗
来呀来呀
好的,我这就来
-----------------------------
client.send('发送数据')
收发数据 收发数据
客户端和服务端断开连接:四次挥手
client.close() 或 conn.close()
-----------------------------
我要断开连接
断开就断开,等我处理一些手头的事情
...
我处理完了,断开吧。
拜拜
断开连接时,反应到代码上:抛出异常/发送空内容;
四. 进度条
import time print(' 80%',end='') time.sleep(2) print(' 90%',end='')
五. 计算文件大小
import os size = os.stat(r'D:123.py').st_size print(size)
六. shutil模块
import shutil shutil.move('c.txt','a.txt') # 重命名, rename在py2 + win系统下会报错 shutil.rmtree('D:python') # 移除文件夹