отправка изображения клиенту через сокеты не будет работать python

#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, пока ничего не выйдет).