网络基础与FTP准备

一网络基础
1.端口:
端口是为了将同一台电脑上的不同程序进行隔离
(IP是在找电脑,端口是在找电脑上的程序)
实例:
MySQL是一个软件,帮助我们在硬盘上进行操作,默认端口是3306
Redis是一个软件,帮助我们在内存里进行数据操作,默认端口:6379
网站默认端口:80,访问时:http://www.baidu.com:80 (前面是http)
:443,访问时:https://www.baidu.com:443 (前面是https)
范围:
一共:1-65535
内置:1-1024
一般情况:8000,8001...

2.OSI:七层模型
七层:
应用层 使用的软件
表示层 看到的数据(如图片和视频)
会话层 保持登录或链接状态 应用偷偷携带一点其他数据:令牌 19rRNAwf8GVe6xyT9kJPIu5SlQc
传输层 TCP/UDP [TCP][基础数据|令牌]
网络层 IP [IP][TCP][基础数据|令牌]
数据链路层 MAC [MAC][IP][TCP][基础数据|令牌]
物理层 将数据转换成电信号发送(01010101010101)
五层:
应用层
应用层 表示层
会话层
传输层
网络层
数据链路层
物理层
四层:
应用层
应用层 表示层
会话层
传输层
网络层
物理层 数据链路层
物理层


3.三次握手四次挥手
客户端向服务端发起连接请求:三次握手
client.connent()
客户端 服务端
我能连接你吗
好的
我来了
client.connect()
客户端和服务端断开连接:四次挥手
client.close() 或 conn.close()
客户端 服务端
我要跟你断开连接
断开吧,等我处理一下
...
处理完了,断开吧
拜拜
4.断开连接时会抛异常(Windows)或发送一个空的字符串(Linux或max)

二.FTP准备
1.\r
print('\r80%',end=' ') #\r的意思是跳到当前行的最前面,并且会覆盖后面的内容
print('\r90%',end=' ')

2.%%
tpl='进度条目前是%s%%' % 90
print(tpl)

3.进度条
import time
def func(size,total_size):
val=int(size/total_size*100)
print('\r%s%%|' % val+'#'*int(size/3),end=' ')
time.sleep(0.1)
for i in range(1,101):
func(i,100)

4.计算文件字节大小
import os
size=os.stat(r'C:\Users\Administrator\PycharmProjects\untitled3\test1.py').st_size
print(size)
size1=os.path.getsize(r'C:\Users\Administrator\PycharmProjects\untitled3\test1.py')
print(size1)

5.打印表情
print('\ue409')

6.send还是sendall
推荐sendall,发的全

7.自定义协议:
自己觉得定义一个对象可以简化代码,就可以自定义一个协议


8.状态码
在某个地方定义好
{'1001':'上传文件','1002':'下载文件'}
也可以是其他类型

9.把字符串转换成字节
如果不存在中文的话,可以在前面加一个b来快速转换
posted @ 2018-09-07 23:14  ★行者尚★  阅读(218)  评论(0编辑  收藏  举报