Форум программистов, компьютерный форум, киберфорум
Python: Сети
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.67/3: Рейтинг темы: голосов - 3, средняя оценка - 4.67
0 / 0 / 0
Регистрация: 19.07.2017
Сообщений: 6
1

Прием ZIP файла сервером на python

11.10.2018, 15:02. Просмотров 521. Ответов 1
Метки нет (Все метки)

Всем доброго времени суток! суть проблемы заключается в следующем: Клиент передает на сервер ЗИП файл, но сам файл оказываеться битым т.к. кол-во байт приходит по разому иногда 75 иногда 78.8 сам вес файла составляет 77.7, нюанс еще и в том что файл отправляется с андройда, но чую я что проблема в моем серваке собственно вопрос есть ли отличие кода при принятии png файлов от ЗИПа т.к. тестил его на принятие png файлов принимает отлично,
P.S. неуверен что данная проблема относиться к теме но как можно дополнить код для принятия более 1 файла (png) т.к. клиент коннектиться к серверу отправляет файл а дальше при повторной отправке выдает ошибку мол сервер отключен, хотя на деле он работает в чем может быть ошибка? всем спасибо за ответы!
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
import socket
import shutil
import zipfile
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.bind((HOST, PORT))
s.listen(10)
while True:
    s, address = s.accept()
 
    print ('client connected:!', address)
    i=1
    e=++i
    f = open('client' + str(e) ,'wb')
    while (True):
            l = s.recv(4096)
            #shutil.move("/GO/TO/FILE") #некоторые файлы плохо грузятся (серая непрогрузка) т.к. неправильно расположен shutil.move
            while (l):
                    f.write(l)
                    l = s.recv(4096)
s.close()
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
11.10.2018, 15:02
Ответы с готовыми решениями:

Прием данных сервером
Передаю данные с одного сервера на другой. Со стороны клиента использую WebRequest. А что мне надо...

Однократный прием данных сервером.
народ подскажите кто знает, вот есть сервер и клиент написаный на апи. только фигня с ним какая то....

Не работает прием сервером строки со стороны клиента
Почему сервер не принимает ввод с клиента? Клиент public class Client { private static...

Прием сервером от клиента чисел, затем сервер умножает и отправляет результат клиенту
Здравствуйте! Помогите пожалуйста сделать клиент-серверное приложение. Клиент отправляет серверу...

1
Эксперт Python
4178 / 3071 / 1007
Регистрация: 28.10.2013
Сообщений: 7,980
13.10.2018, 19:15 2
Цитата Сообщение от ROBBB Посмотреть сообщение
чую я что проблема в моем серваке
Проблема в вашем непонимании сокетов и работы протокола TCP.
То что вы получаете файлы png и они открываются, это не значит что они получены верно. Из файла изображения можно удалить некоторое число байтов и оно все-таки будет открываться (просто где-то не будет хватать пикселей). А из zip нельзя - формат не позволяет.
Ваша проблема в том, что вы читаете байты, но не знаете сколько вам нужно прочитать и в итоге получаете постоянно или недовес или перевес. Данные которые читает recv это просто сырой поток - у него нет ни начала, ни конца.
Позаботиться о маркировке начала\конца данных или точном числе байтов передаваемых данных - задача программиста. TCP за это не отвечает. Если вы не понимаете как это сделать - не пользуйтесь такими библиотеками, где требуется работать с низкоуровневыми протоколами.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
13.10.2018, 19:15

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Где взять python.zip?
Собирал отладчик DGB по этой статье: http://qtlinux.narod.ru/make_gdb.htm. msys.bat не может...

Прием HEX-байт pyserial python
Добрый день. Использую библиотеку pyserial python для работы с uart на raspberrypi. Данная...

Создать для каждого файла в папке отдельный архив с именем файла и расширением .zip
Set objArgs = WScript.Arguments InputFolder = "c:\Rezerv" ZipFile = "c:\zip\1.zip"...

Открытие Zip файла
Как работает алгоритм открытия zip файла ?


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.