Каждый раз, когда клиент подключается к вашему серверу, он заменяет предыдущее соединение:
while (true)
{
someClient = serverSocket.accept();
...
}
someClient
является статическим:
static Socket someClient;
, что означает, что он используется всеми потоками,Кроме того, доступ к нему не синхронизируется никоим образом, что означает, что изменения его значения не гарантированно будут видны другим потокам.
Как указал Питер Лори в комментариях,Потоки также должны быть нестатичными: на самом деле
static DataInputStream inputStream;
static DataOutputStream outputStream;
факт, что вы всегда читаете из «последнего» * 1015 *, может быть основной причиной описываемого вами поведения.outputStream
кажется неиспользованным, поэтому лучше удалить его.
В дополнение к этому, для фактической отправки данных может потребоваться сбросить OutputStreams
.