上一页 1 ··· 5 6 7 8 9 10 11 12 下一页
摘要: #1、锁:房间的门上有一把锁,锁上有一把钥匙,一个人使用这把钥匙开锁之后,带上钥匙进入房间,把门给反锁了,他在房间干活, # 只要他不出来还锁,别人是无法进入房间的。同时只能有一个人在房间里干活。效率低,但能保证数据安全。 # 锁 在并发编程中保证数据安全。 #多进程实现并发:多进程就是同时开启多个 阅读全文
posted @ 2020-01-02 23:10 梁劲雄 阅读(145) 评论(0) 推荐(0) 编辑
摘要: #1、server端跟多个client端聊天: #异步操作,主进程负责接收client的连接,子进程负责跟client聊天。 #每接收一个连接,就创建一个子进程,子进程之间的数据是隔离的,互不影响,所以server端可以跟多个client端聊天。 #server: import socket fro 阅读全文
posted @ 2020-01-02 23:07 梁劲雄 阅读(139) 评论(0) 推荐(0) 编辑
摘要: #1、异步非阻塞: import os from multiprocessing import Process def func(): print('子进程:',os.getpid()) if __name__ == '__main__': p = Process(target = func) #创 阅读全文
posted @ 2020-01-02 23:04 梁劲雄 阅读(112) 评论(0) 推荐(0) 编辑
摘要: #进程是程序的运行,程序不运行不产生进程。 #1、进程的并行与并发: # 并行:是指两者同时执行,比如赛跑,两人都在不停的往前跑。(资源够用,比如三个线程,四核的cpu) # 并发:是指资源有限的情况下,两者交替轮流使用资源,比如一段路(单核cpu)只能同时过一个人,A走一段路之后,让给B, # B 阅读全文
posted @ 2019-12-12 14:07 梁劲雄 阅读(170) 评论(0) 推荐(0) 编辑
摘要: #socketserver 是在socket基础上进行了封装,它让server可以实时跟多个client进行通信。 #thread线程:一个程序有一个线程,一个线程是调度cpu的最小单位。程序运行才产生线程,不运行就不产生。 #如果启用多个线程去接收多个client的请求,就能实现并发的效果。 # server: import socketserver class MyServer(socke... 阅读全文
posted @ 2019-08-27 13:22 梁劲雄 阅读(162) 评论(0) 推荐(0) 编辑
摘要: #如果客户端知道服务端的ip地址和端口,就可以连接服务端,信息不安全。 #使用os.urandam随机生成32位bytes,然后hmac加密之后再发送给客户端。 #server: import socket import hmac import os secret_key = b'daxiong' sk = socket.socket() sk.bind(('127.0.0.1',9002)) s 阅读全文
posted @ 2019-08-27 13:21 梁劲雄 阅读(126) 评论(0) 推荐(0) 编辑
摘要: #在网络上面传输的数据叫数据包,数据包里面的数据叫报文,报文都有报头。 #报头可以包含文件路径、文件大小、文件名称等等。#当数据比较长,一次性发送会报错,需要分多次发送。#client端上传数据到server端,server端下载数据: #client端: import socket import 阅读全文
posted @ 2019-08-27 13:20 梁劲雄 阅读(130) 评论(0) 推荐(0) 编辑
摘要: #黏包现象:信息还没接收完,下一次接收的时候一下子接收好几条黏在一起的信息。 #黏包现象的原因:接收端不知道发送端发送的数据的长度。recv(字节数小了)。 # 第一次无法接收完就缓存起来,下一次接收。 #只有TCP才会黏包,UDP不会黏包。 #TCP的黏包现象: #server下发信息给多个client,控制它们干活。 #server端: import socket sk = socket.so 阅读全文
posted @ 2019-08-27 13:19 梁劲雄 阅读(131) 评论(0) 推荐(0) 编辑
摘要: #struct模块可以把一个数据类型,例如数字int,转化成固定长度(4个字节)的bytes。int转为4个bytes。 #在大量传输数据之前先告诉接收端即将接收数据的大小,方可解决黏包问题: #利用struct模块打包要发送的数据的长度,接收端接收这个包,解包之后,接收这个长度的数据。 import struct pack = struct.pack('i',4096) #打包,'i'代表int 阅读全文
posted @ 2019-08-27 13:19 梁劲雄 阅读(158) 评论(0) 推荐(0) 编辑
摘要: #17.有四个数字:1 2 3 4 ,能组成多少个各不相同且数字不重复的三位数?各是多少? count = 0 for i in range(1,5): for j in range(1,5): for k in range(1,5): if i == j or j == k or i == k: continue #来到循环开始的地方:for i in range(1,5) count += 1 阅读全文
posted @ 2019-08-16 09:47 梁劲雄 阅读(89) 评论(0) 推荐(0) 编辑
上一页 1 ··· 5 6 7 8 9 10 11 12 下一页