网络基础, 进度条, 计算文件大小, shutil模块,

一. 端口,是什么?为什么要有?
    端口是为了将同一个电脑上的不同程序进行隔离。

    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('\r80%',end='')
time.sleep(2)
print('\r90%',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')    # 移除文件夹

 

posted @ 2018-09-07 20:34  NachoLau  阅读(195)  评论(0编辑  收藏  举报