#python #networking #server #client
#python #сеть #сервер #клиент
Вопрос:
Я новичок в программировании на Python и создании сетей. пытаюсь учиться. Я пытаюсь отправить снимок экрана с серверного компьютера клиенту. сохранение скриншота на сервере работает, но сохранение его после отправки на стороне клиента не будет работать. Любая помощь была бы замечательной. Я не смог исправить это с помощью других решений, которые я нашел в подобных вопросах. серверный код:
if (command == 'TAKE_SCREENSHOT'):
img = open(r'C:Cyberscreen.jpg', 'rb').read()
print(len(img))
client_socket.send(img)
и код клиента:
from PIL import Image
data = my_socket.recv(2048)
buff = StringIO(data.decode(errors='ignore'))
img = Image.open(buff.encoding)
img.save(r'C:Clientnewscreen.jpg')
Комментарии:
1. Попробуйте buff.seek (0) перед его открытием. Или попробуйте BytesIO. Однако в обоих случаях требуется поиск.
2. Эй, попробовал, и я получаю эту ошибку AttributeError: объект ‘NoneType’ не имеет атрибута ‘read’
3. Также вы получаете всего 2048 байт, вы хотели это сделать?
4. вы правы! использовал BytesIO и увеличил размер recv, и теперь это работает! Спасибо! извините за ошибки новичков
5. Добро пожаловать! Я считаю, что есть еще лучший подход (повторяйте фрагменты из recv, пока ничего не выйдет).