- 博客(4)
- 收藏
- 关注
原创 python实现文件传输功能
基于之前解决粘包问题后,来实现文件传输我们就不用subprocess模块了,要传输文件首先需要打开文件以字节的格式传给对方,再让对方解码得到文件。但在这之前,我们还需要制定一下规则,确定一下客户端需要什么文件。他发给服务端的请求格式。比如:cmd = input('>>:').strip() # get a.txtif not cmd: continuephone.send(cmd.encode("gbk"))客户端输入‘get a.txt’给服务端,服务端需要把这个消息分成两
2020-05-14 18:19:15 2757
原创 解决粘包问题(python)
在传输数据消息时因为TCP协议使用了优化方法(Nagle算法),将多次间隔较小且数据量小的数据,合并成一个大的数据块,然后进行封包,这样,接收端就难于分辨出来了,所以会产生粘包效果。 在这种情况下我们需要制作一个报头来告诉接收端我们要发送的数据的长度,来方便接收端接收。 第一步:制作固定长度的报头header_dic = { 'filename': 'a.txt', 'md5': 'xxxdxxx', 'total_size': len(stdeer) +...
2020-05-12 21:58:08 202
原创 模拟ssh远程执行命令
在socket的模块可以发送数据消息的基础上,我们想远程发送一些系统命令来调试服务器。执行系统命令的模块一开始可能给会想到os模块,但我们在使用os模块群无法拿出os模块调用处的结果。如:import osres = os.system('dir')print('命令的结果:', res)显示结果为:(这里显示乱码,因为Windows系统上文件都为gbk,但pycharm上Global Encoding为utf-8。我们在这里看到把res取出来结果为0,这个0是来判断命令是否执行。0代表执行,非
2020-05-12 15:07:34 397
原创 TCP协议和UDP协议的基础框架(python)
加粗 斜体 标题 删除线 无序 有序 待办 引用TCP协议的基础框架1、服务端import socket# 创建服务端server = socket.socket(socket.AF_INET, socket.SOCK_STREAM)# 绑定服务器的IP和端口server.bind(('127.0.0.1', 8848)) # 这个IP在同一台机子上调试用# 监听serv
2020-05-11 18:21:31 368
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人