08 2019 档案
摘要:#socketserver 是在socket基础上进行了封装,它让server可以实时跟多个client进行通信。 #thread线程:一个程序有一个线程,一个线程是调度cpu的最小单位。程序运行才产生线程,不运行就不产生。 #如果启用多个线程去接收多个client的请求,就能实现并发的效果。 # server: import socketserver class MyServer(socke...
阅读全文
摘要:#如果客户端知道服务端的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
阅读全文
摘要:#在网络上面传输的数据叫数据包,数据包里面的数据叫报文,报文都有报头。 #报头可以包含文件路径、文件大小、文件名称等等。#当数据比较长,一次性发送会报错,需要分多次发送。#client端上传数据到server端,server端下载数据: #client端: import socket import
阅读全文
摘要:#黏包现象:信息还没接收完,下一次接收的时候一下子接收好几条黏在一起的信息。 #黏包现象的原因:接收端不知道发送端发送的数据的长度。recv(字节数小了)。 # 第一次无法接收完就缓存起来,下一次接收。 #只有TCP才会黏包,UDP不会黏包。 #TCP的黏包现象: #server下发信息给多个client,控制它们干活。 #server端: import socket sk = socket.so
阅读全文
摘要:#struct模块可以把一个数据类型,例如数字int,转化成固定长度(4个字节)的bytes。int转为4个bytes。 #在大量传输数据之前先告诉接收端即将接收数据的大小,方可解决黏包问题: #利用struct模块打包要发送的数据的长度,接收端接收这个包,解包之后,接收这个长度的数据。 import struct pack = struct.pack('i',4096) #打包,'i'代表int
阅读全文
摘要:#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
阅读全文
摘要:# 一、子网掩码: # 1. 作用是划分子网,就是将某个ip地址划分成网络地址和主机地址两部分。 # 形式上等同于ip地址,也是一个32位二进制数, # 如果它的网络部分(前24位)全为1,主机部分(后8位)全为0,子网掩码是11111111.11111111.11111111.0000000 #
阅读全文
摘要:格式:\033[显示方式;前景色;背景色m 说明:显示方式 意义------------------------- 0 终端默认设置 1 高亮显示 4 使用下划线 5 闪烁 7 反白显示 8 不可见------------...
阅读全文
摘要:# socket是应用层与TCP/IP协议通信的中间软件抽象层,它是一组接口。它把复杂的TCP/IP协议隐藏到socket #接口的后面,让socket去组织数据,以符合指定的协议。 # socket是一个模块,使用它来建立两个程序之间的连接和通信。也可以把socket看做是ip+port,因为ip
阅读全文
摘要:# logging日志记录的两个内容:1、有5种级别的日志记录模式。2、两种配置方式:basicconfig、logger对象。 # logging的作用: #1、排错的时候需要打印很多细节来帮助排错。 #2、把错误记录下来。 #3、用户行为,有没错都要记录下来。 # 1. 5种级别的日志记录模式: import logging logging.debug('debug message') #...
阅读全文
摘要:# python的hashlib提供了常见的摘要算法,如md5(md5算法),sha1等等。摘要:digest # 摘要算法又称哈希算法、散列算法。 # 它通过一个函数,把任意长度的数据(明文)转换为一个长度固定的数据串(密文)(通常用16进制的字符串表示)。 # 摘要算法就是通过摘要函数f()对任
阅读全文
摘要:class Goods: def __init__(self,name): self.name = name def __eq__(self,other): #self = apple1, other = apple2 if self.name == other.name: return True else...
阅读全文