我正在尝试使用 Python 的套接字模块将文件从一台计算机下载到另一台计算机。我知道这行得通,但不确定这样做是否合乎逻辑,或者是否有更好的方法。
客户:
import socket
files = []
with open("C:\\path\\to\\file.txt", "rb") as f:
bytecode = f.read()
files.append(("file.txt", bytecode))
with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as s:
s.connect(("ip_address", 8080))
s.sendall(str(files).encode())
服务器:
import socket
files = ""
with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as s:
s.bind(("ip_address", 8080))
s.listen()
conn, addr = s.accept()
with conn:
while True:
data = conn.recv(1024)
if not data:
break
files += data.decode()
for tuple in eval(files):
with open(f"C:\\path\\to\\directory\\{tuple[0]}", "wb") as f:
f.write(tuple[1])
就下载速度和可靠性而言,这是一种合理的下载文件方式吗?