随笔分类 -  网络编程

https协议
摘要:HTTPS通信过程 HTTPS协议 = HTTP协议 + SSL/TLS协议,在HTTPS数据传输的过程中,需要用SSL/TLS对数据进行加密和解密,需要用HTTP对加密后的数据进行传输,由此可以看出HTTPS是由HTTP和SSL/TLS一起合作完成的。 SSL的全称是Secure Sockets 阅读全文

posted @ 2019-03-08 16:02 窮山霧繞(静妙) 阅读(147) 评论(0) 推荐(0)

协程
摘要:一、协程存在的原因 因为想要在单线程内实现并发的效果(因为CPython有GIL锁,限制了在同一个时间点,只能执行一个线程,所以想要在执行一个线程的期间,充分的利用CPU的性能,因此想在单线程内实现并发的效果) 并发 :切换 + 保存状态 (yield 只能单纯的实现状态的保存和切换函数) yiel 阅读全文

posted @ 2018-08-28 22:36 窮山霧繞(静妙) 阅读(146) 评论(0) 推荐(0)

同一个进程内的队列(多线程) 线程池
摘要:一、同一个进程内的队列(多线程) import queue queue.Queue() 先进先出 queue.LifoQueue() 后进先出 queue.PriorityQueue() 优先级队列 优先级队列 q = queue.PriorityQueue() q.put((pri , data) 阅读全文

posted @ 2018-08-27 18:40 窮山霧繞(静妙) 阅读(438) 评论(0) 推荐(0)

线程 定时器 互斥锁
摘要:一、线程的概念。 线程被称为轻量级的进程。GIL:全局解释锁(只有CPython解释器才有) 对于线程来说因为有了GIL所以没有真正的并行。 计算机的执行单位以线程为单位。计算机的最小可执行单位为线程。 进程是资源分配的基本单位。线程是可执行的基本单位,是可被调度的基本单位。 线程不可以自己独立拥有 阅读全文

posted @ 2018-08-23 21:32 窮山霧繞(静妙) 阅读(493) 评论(0) 推荐(0)

joinablequeue模块 生产者消费者模型 Manager模块 进程池 管道
摘要:一、生产者消费者 主要是为解耦(借助队列来实现生产者消费者模型) import queue # 不能进行多进程之间的数据传输 (1)from multiprocessing import Queue 借助Queue解决生产者消费者模型,队列是安全的。 q = Queue(num) num :为队列的 阅读全文

posted @ 2018-08-22 22:58 窮山霧繞(静妙) 阅读(379) 评论(0) 推荐(0)

锁机制(Lock) 信号量机制(Semaphore) 事件机制(Event)
摘要:IPC 进程间通信(inter-Process Communicate) 锁机制(Lock) l = Lock() 开启一个锁机制(实例化) 一把锁配一个钥匙 l.acquire() 获得钥匙,锁门 l.release() 还钥匙,开门 信号量机制(Semaphore) sem = Semaphor 阅读全文

posted @ 2018-08-21 17:24 窮山霧繞(静妙) 阅读(789) 评论(0) 推荐(0)

进程的相关知识和操作
摘要:1、编程语言的发展: 机器语言:二进制 汇编语言:指令,命令形式的 高级语言:面向过程(C)面向对象(python,c++,java) 2、操作系统的目标: 为了用户使用更方便。 作用: 有效性:提高系统资源利用率。 方便性:更加方便用户的使用。 高内聚:内聚指模块内部各部分之间的紧密程度。 低耦合 阅读全文

posted @ 2018-08-20 21:31 窮山霧繞(静妙) 阅读(189) 评论(0) 推荐(0)

切换目录
摘要:# 切换目录(客户端代码) import socket import os sk = socket.socket() sk.connect(("127.0.0.1",8090)) abs_path = input('请输入一个根目录:') sk.send(abs_path.encode('utf-8')) current_dir = sk.recv(1024).decode('utf-8')... 阅读全文

posted @ 2018-08-20 16:39 窮山霧繞(静妙) 阅读(167) 评论(0) 推荐(0)

client / server端用户的登录
摘要:# 客户端 import socket import hashlib import json import os import struct sk = socket.socket() # 实例化 sk.connect(('127.0.0.1', 8090)) # 请求连接 def login(): dic = {'status': False, 'username': None... 阅读全文

posted @ 2018-08-19 22:56 窮山霧繞(静妙) 阅读(274) 评论(0) 推荐(0)

struck 模块
摘要:struck.pack(type,num) type : 是num的类型 num : int类型 r = struck.pack 把一个num内容打包成一个c规定的字节bytes的个数 struck.unpack(type,r) 功能 :解包,把r解成原数字,结果是一个元祖,原数字在元祖的下标位为0 阅读全文

posted @ 2018-08-19 22:10 窮山霧繞(静妙) 阅读(429) 评论(0) 推荐(0)

文件的上传下载
摘要:# 文件的上传下载客户端普通版(会有粘包的情况出现) import os import json import socket sk = socket.socket() sk.connect(('127.0.0.1',8080)) menu = {'1':'upload','2':'download'} for k,v in menu.items(): print(k,v) num =... 阅读全文

posted @ 2018-08-14 22:03 窮山霧繞(静妙) 阅读(125) 评论(0) 推荐(0)

subprocess 粘包问题
摘要:1、执行命令: 在py代码中去如何调用操作系统的命令 新模块:subprocess r = subprocess.Popen('ls',shell=True,stdout=subprocess.PIPE,stderr=subprocess.PIPE) subprocess.Popen(cmd,she 阅读全文

posted @ 2018-08-14 16:11 窮山霧繞(静妙) 阅读(177) 评论(0) 推荐(0)

交换机与路由器的区别 协议编码
摘要:1、交换机与路由器的区别 交换机的主要功能:是组织局域网,经过交换机内部处理解析信息之后,将信息以点对点、点对多的形式发送给固定端。 路由器的主要功能:是进行跨网段数据传输,路由选择最佳路径。 ex:如果你需要将多个电脑连接到一根网线上,用交换机即可。 如果你只有一个外网IP,但是你有好多台电脑需要 阅读全文

posted @ 2018-08-13 16:40 窮山霧繞(静妙) 阅读(911) 评论(0) 推荐(0)

网络基础相关的知识 socket模块
摘要:1、架构 1、C/S架构:client客户端和server服务器端 优势:能充分发挥pc机的性能 2、B/S架构:browser浏览器和server服务器 隶属于C/S架构 B/S架构 统一了应用的接口 2、通信的事 a、同一台电脑上两个py程序通信:打开一个文件 b、两个电脑如何通信:连一个网线 阅读全文

posted @ 2018-08-10 20:35 窮山霧繞(静妙) 阅读(170) 评论(0) 推荐(0)

导航