python之socket运用之传输大文件详解编程语言
2023-06-13 09:11:54 时间
socket建议最大的传输单元是8192个字符,但是如果超过8192就会出现问题,我们可以用下面的方法处理
客户端代码
import subprocess import socket ip_bind = ("127.0.0.1",9000) client = socket.socket() client.connect(ip_bind) l1 = [] while True: option = input("client:") client.sendall(bytes(option,encoding="utf-8")) server_data_size = client.recv(50) print(server_data_size) a = str(server_data_size,encoding="utf-8").strip() print(a) l1 = a.split(":") print(l1) if l1[0] == "server_data_size": client_size_tmp = l1[1] print(client_size_tmp) client_size = int(client_size_tmp) print(type(client_size)) client.send(bytes("ok",encoding="utf-8")) receive_size = 0 res = "" while receive_size client_size: server_data = client.recv(100) receive_size += len(server_data) res += str(server_data) else: print(res) print("-------reveive down---------")
服务端代码
import subprocess import socket ip_bind = ("127.0.0.1",9000) server = socket.socket() server.bind(ip_bind) server.listen(1) print("server is waiting........") conn,add = server.accept() print("server is connected client") while True: client_data = conn.recv(50) a = subprocess.Popen(str(client_data,encoding="utf-8"),stdout=subprocess.PIPE) b = a.stdout.read() server_data_size = "server_data_size:" + str(len(b)) conn.sendall(bytes(server_data_size,encoding="utf-8")) client_ack = conn.recv(10) if str(client_ack,encoding="utf-8") == "ok": conn.sendall(b)
原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/20887.html
cpython相关文章
- python 使用 with open() as 读写文件
- python中dtype什么意思_NumPy Python中的数据类型对象(dtype)
- python读取pkl_Python读取文件的一段内容
- python从linux下载文件_python gzip
- 廖雪峰的 Python 教程_python基础教程廖雪pdf
- 【测试开发】python系列教程:Python注释和解释器
- python-Django-文件上传(三)
- python分割文件代码详解编程语言
- python http上传文件处理示例详解编程语言
- python写的FTP简单上传下载文件详解编程语言
- Python删除指定目录下的过期文件详解编程语言
- python通过win32com库播放mp3文件详解编程语言
- Python文件的一些操作代码详解编程语言
- Python使用win32api获取DLL和EXE文件版本号详解编程语言
- python文件操作(2017-8-5)详解编程语言
- Python读取Excel文件详解编程语言
- 使用Python操作MySQL数据库快速上手(python访问mysql数据库)
- Python实现读取目录所有文件的文件名并保存到txt文件代码