如何解决使用 Python Socket 分块发送和接收文件
我正在尝试通过 Python 3.9 套接字发送和接收文件,但我的代码只能运行一半时间。
客户端(文件阅读器)的代码:
import socket
r = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
r.connect((socket.gethostname(),8080))
with open("fileToRead.jpg","rb") as fileReader:
for data in fileReader:
r.send(data)
r.send("flag".encode())
print("I have finished reading")
userInp = ""
while userInp != "exit":
userInp = input("Enter input: ")
r.close()
服务器(文件编写器)的代码:
import socket
w = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
w.bind((socket.gethostname(),8080))
w.listen(1)
conn,addr = w.accept()
print("Connection made from ",addr)
with open("fileToWrite.jpg","wb") as fileWriter:
while True:
data = conn.recv(1024)
if data.decode() == "flag":
break
fileWriter.write(data)
print("just wrote data")
print("I have finished writing")
while True:
input("Test to see if I can work after file transfer: ")
我需要在文件传输后客户端和服务器仍然连接。我提供的代码对我来说只有一半的时间,我不知道为什么。一半不工作,服务器卡在线路print("just write data")
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。