File Server Неполадка загрузки Python 2.5.1File Server Загрузить Python
Так я работаю на файловом сервере, как проект хобби. Однако у меня проблемы. Я могу использовать клиент для успешной загрузки файла на сервер, но скажем, что файл для загрузки составляет 50 000 байт (50 мб), он будет загружать только 49,945 байт, а затем, если я попытаюсь открыть его, он скажет, что он поврежден. Если я закрою сервер, он будет работать до 50 000, тогда работает. Есть ли способ исправить это, если сервер не нуждается в закрытии и повторном открытии?
(Загрузка Doesnt есть эта проблема)
Полный код клиента: Client
Полный сервер: Server
Клиент Выгрузка Функция:
def Uploader(s):
IsReal = True
data = "UploaderReady"
if data == "UploaderReady":
List = []
FilePath = dir_path = os.path.dirname(os.path.realpath(__file__))
List.append(os.listdir(FilePath))
FileUpload = raw_input("Pick a file? -> ")
for Item in List:
if FileUpload == Item:
IsReal = True #checks if item exists
if IsReal == True:
File = open(FileUpload,'rb')
bytestosend = File.read(1024)
FileSize = os.path.getsize(FileUpload)
s.send(FileUpload)
s.send(str(FileSize))
s.send(bytestosend)
while bytestosend != "":
bytestosend = File.read(8192)
s.send(bytestosend)
print"Processing"
File.close()
time.sleep(1.5)
s.send("COMPLETE")
print"File Successfully Uploaded"
time.sleep(2)
print" \n " * 10
Main()
if IsReal == "False":
print"Item doesn't Exist"
time.sleep(2)
print" \n " * 10
s.close()
Main()
Сервер загрузки Функция:
Todo = sock.recv(1024)
if Todo == "U":
print str(addr)+" Uploading"
UploadingThread = threading.Thread(target=Uploader,args=(c,c,))
UploadingThread.start()
def Uploader(c,s):
filename = s.recv(1024)
filesize = s.recv(1024)
f = open(filename,'wb')
totalRecv = 0
while totalRecv < filesize:
FileContent = s.recv(8192)
totalRecv += len(FileContent)
f.write(FileContent)
print"Download Complete"
f.close()
s.close()
Пытались ли вы с меньшими файлами? –
Попробуйте закрыть сокет, когда вы закончите загрузку на стороне клиента. –