Я думаю, что ваша проблема заключается в том, что вы читаете его с клиента.
Я предполагаю, что магическое число 16380 - это ожидаемая длина файла.Так что вам нужно сделать что-то немного другое:
int count = 0;
while (count < 16380) {
int incoming = in.read(bytes);
System.out.println("v : " + incoming);
if (incoming > 0) {
out.write(bytes, 0, incoming);
count += incoming;
} else if (incoming < 0) {
//end of stream
break;
}
}
Этот цикл будет продолжаться до тех пор, пока число прочитанных байтов (count
) не достигнет вашего магического числа.
Что-тоЯ также хотел бы использовать более эффективные входные потоки, такие как BufferedInputStream
.
Итак, в вашей первой строке в блоке вы делаете:
in = new BufferedInputStream(socket.getInputStream());
Если вы хотите большое количество одновременных соединений, возможно, имеет смысл взглянуть на создание вашегонеблокирование сервера с помощью NIO.Но парадигма немного другая.