Не получается отправить картинку на socket клиент Java android с сервера Python
Есть клиент на Java android socket и сервер на Python socket. С сервера я передаю массив байт на клиент, но после передачи, файл не полный и не открывается. Вот код:
Клиент:
//--подключение к серверу
BufferedReader In = new BufferedReader(new InputStreamReader(socket.getInputStream()));
FileOutputStream fos = openFileOutput("photo.png", MODE_PRIVATE); //создание файла
String in = In.readLine(); //чтение размера картинки
int size = Integer.parseInt(in); //преобразование в int
DataInputStream dIn = new DataInputStream(socket.getInputStream());
byte[] bytes = new byte[5*1024];
int count, total=0;
while ((count = dIn.read(bytes)) > -1) {
total+=count;
fos.write(bytes);
if (total==size) break;
}
fos.close();
Сервер:
#-- создание сервера
f = open('photo.png', 'rb')
b = f.read()
conn.send((str(len(b)) + '\r\n').encode()) #отправка размера картинки
conn.send(b) #отправка байтов
conn.send('\r\n'.encode()) #завершение строки
Может я не так передаю или не так записываю в файл?