Как убедиться, что изображение получено клиентом и код выходит из цикла? - PullRequest
0 голосов
/ 07 мая 2019

Я отправляю изображение с Raspberry Pi на ноутбук с помощью сокетов.Pi не выходит из цикла после завершения отправки, и ноутбук не выходит из цикла после завершения приема.Любые идеи, которые могут решить эту проблему?

Я хочу, чтобы ноутбук вышел из цикла после получения полного изображения.

Принятые данные никогда не бывают согласованными, поэтому невозможно вырваться из цикла всякий раз, когда file_data равен

import socket
import os


x = 0

host = "192.168.43.98"
port = 5000

s= socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.connect((host,port))

print("Connected to Pi...")


filename ="testImg.jpg"
file =  open (filename, 'wb')


length = 0


while True:

        file_data = s.recv(1000)

        if (length > 3050000):
                file.write(file_data)
                print('Receiving data')
                print(len(file_data))
                length = length + int(len(file_data))

                if (len(file_data) < 500):
                        print(len(file_data))
                        file.write(file_data)
                        print('no more data to receive --> break')
                        break

        else:

                file.write(file_data)
                print('Receiving data')
                print(len(file_data))
                length = length + int(len(file_data))


file.close()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...