【发布时间】:2015-08-28 17:25:34
【问题描述】:
我正在尝试编写一个脚本,该脚本需要将文件从服务器发送到客户端,并且当目标不是本地主机时文件被完全发送时遇到问题。因此,当服务器和客户端在不同的机器上时,客户端似乎更快地接收文件,然后服务器正在发送它并提前停止接收。一个例子是,如果我尝试通过客户端发送一个 200 MB 的文件,通常会在 180 MB 左右停止接收。
以下是发送和接收文件的脚本部分。
发送文件
def t_handle(client, address, s):
file_size = str(os.stat("path to file to send").st_size)
print file_size
client.send(file_size)
work_file = open("path to fil to send", "rb")
print "sending file"
file_size = int(file_size)
while file_size > 0:
buffer = work_file.read(1024)
client.send(buffer)
file_size -= 1024
print file_size
print "done"
接收文件
def main():
server = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
server.settimeout(90)
server.connect((host, port))
file_size = int(server.recv(1024))
print "receiving file"
file_size = int(file_size)
print file_size
f = open("test_output.mkv", "wb+")
while file_size > 0:
work_file = server.recv(1024)
f.write(work_file)
file_size -= 1024
print file_size
f.close()
print "done"
return 0
任何帮助将不胜感激。
【问题讨论】: