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

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

11.10.2018, 15:02. Показов 916. Ответов 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
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
11.10.2018, 15:02
Ответы с готовыми решениями:

Приём файла Socket сервером при ServerType = stThreadBlocking
Здравствуйте уважаемые пользователи данного форума. Пишу программу клиент-сервер, клиент передаёт серверу файл, сервер его принимает,...

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

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

1
Эксперт Python
5438 / 3859 / 1215
Регистрация: 28.10.2013
Сообщений: 9,552
Записей в блоге: 1
13.10.2018, 19:15
Цитата Сообщение от ROBBB Посмотреть сообщение
чую я что проблема в моем серваке
Проблема в вашем непонимании сокетов и работы протокола TCP.
То что вы получаете файлы png и они открываются, это не значит что они получены верно. Из файла изображения можно удалить некоторое число байтов и оно все-таки будет открываться (просто где-то не будет хватать пикселей). А из zip нельзя - формат не позволяет.
Ваша проблема в том, что вы читаете байты, но не знаете сколько вам нужно прочитать и в итоге получаете постоянно или недовес или перевес. Данные которые читает recv это просто сырой поток - у него нет ни начала, ни конца.
Позаботиться о маркировке начала\конца данных или точном числе байтов передаваемых данных - задача программиста. TCP за это не отвечает. Если вы не понимаете как это сделать - не пользуйтесь такими библиотеками, где требуется работать с низкоуровневыми протоколами.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
13.10.2018, 19:15
Помогаю со студенческими работами здесь

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

Приём запроса сервером и отправление обратно клиенту
Доброго времени суток. Помогите разобраться с вопросом. Если код, с помощью которого отправляю POST запрос на сервер. Каким образом...

Sockets прием данных сервером ошибка EOF
Есть клиент и сервер клиент шлет серверу строку "isConnect" для поддержания коннекта, сервер может принимать данные, после приема данных...

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

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


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Новые блоги и статьи
Установка Qt Creator для C и C++: ставим среду, CMake и MinGW без фреймворка Qt
8Observer8 05.04.2026
Среду разработки Qt Creator можно установить без фреймворка Qt. Есть отдельный репозиторий для этой среды: https:/ / github. com/ qt-creator/ qt-creator, где можно скачать установщик, на вкладке Releases:. . .
AkelPad-скрипты, структуры, и немного лирики..
testuser2 05.04.2026
Такая программа, как AkelPad существует уже давно, и также давно существуют скрипты под нее. Тем не менее, прога живет, периодически что-то не спеша дополняется, улучшается. Что меня в первую очередь. . .
Отображение реквизитов в документе по условию и контроль их заполнения
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеСпецтехники", разработанного в конфигурации КА2. Данный документ берёт данные из другого нетипового документа. . .
Фото всей Земли с борта корабля Orion миссии Artemis II
kumehtar 04.04.2026
Это первое подобное фото сделанное человеком за 50 лет. Снимок называют новым вариантом легендарной фотографии «The Blue Marble» 1972 года, сделанной с борта корабля «Аполлон-17». Новое фото. . .
Вывод диалогового окна перед закрытием, если документ не проведён
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: реализовать программный контроль на предмет проведения документа. . .
Программный контроль заполнения реквизитов табличной части документа
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: 1. Реализовать контроль заполнения реквизита. . .
wmic не является внутренней или внешней командой
Maks 02.04.2026
Решение: DISM / Online / Add-Capability / CapabilityName:WMIC~~~~ Отсюда: https:/ / winitpro. ru/ index. php/ 2025/ 02/ 14/ komanda-wmic-ne-naydena/
Программная установка даты и запрет ее изменения
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: при создании документов установить период списания автоматически. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru