摘要:
subprocess模块 subprocess是Python 2.4中新增的一个模块,它允许你生成新的进程,连接到它们的 input/output/error 管道,并获取它们的返回(状态)码。这个模块的目的在于替换几个旧的模块和方法,如: os.system os.spawn* 1. subprocess模块中的常用函数 函数 描述 subprocess.run() Python 3.5中... 阅读全文
摘要:
目录格式: 构建此目录就可随意使用! client端 server端 阅读全文
摘要:
解决方案 # 我们可以借助一个模块,这个模块可以把要发送的数据长度转换成固定长度的字节。这样客户端每次接 # 收消息之前只要先接受这个固定长度字节的内容看一看接下来要接收的信息大小,那么最终接受的数据 # 要达到这个值就停止,就能刚好不多不少的接收完整的数据了。 # import json,struct # #假设通过客户端上传1T:1073741824000的文件a.txt # #为避免... 阅读全文
摘要:
# #********struct模块********# # 1.按照指定格式将Python数据转换为字符串,该字符串为字节流,如网络传输时, # 不能传输int,此时先将int转化为字节流,然后再发送; # 2.按照指定格式将字节流转换为Python指定的数据类型; # 3.处理二进制数据,如果用struct来处理文件的话,需要用’wb’,’rb’以二 # 进制(字节流)写,读的方式来处理文... 阅读全文
摘要:
********黏包******** ****黏包现象**** 基于tcp先制作一个远程执行命令的程序(命令 ls -l ; |||; pwd) res=subprocess.Popen(cmd.decode('utf-8'), shell=True, stderr=subprocess.PIPE, stdout=subprocess.PIPE) 的结果的编码是以当前所在的系统为准的,如... 阅读全文
摘要:
import my_UDP sk = my_UDP.My_Socket() while 1: msg = input('>>>') sk.mysendto(msg,('127.0.0.1', 8080)) data, addr = sk.myrecvfrom(1024) print(data) im 阅读全文
摘要:
import my_TCP sk = my_TCP.My_socket() sk.bind(('127.0.0.1', 7084)) sk.listen(4) while 1: conn, addr = sk.accept() print(conn, type(conn)) while 1: res 阅读全文
摘要:
主要为题出在服务器端的accept()函数,他返回两个参数,一个套接字和一个客户端的ip和端口组成的元组。 问题就出在这个套接字这里,我们继承了socket这个类,这个套接字创建的时候是通过socket创建的, 后面我们不可以直接使用它,因为它调用的方法都是socket的方法,所以我们只能将他作为参 阅读全文
摘要:
# __author: busensei # data: 2018/8/15 from functools import reduce import re def cal_atomexp(atom_exp): # 计算乘除法 if '*' in atom_exp: a, b = atom_exp.split('*') atom_res... 阅读全文
摘要:
#****setver端 import socket sk = socket.socket() adress = ('127.0.0.1', 8032) sk.bind(adress) sk.listen(4) while 1: conn, addr = sk.accept() while 1: res_s = ... 阅读全文