Есть только один способ использовать его, и это не так.
int lengthRecvd= (int)dataInFromClient.readDouble();
Здесь вы читаете double
, который не был написан. Таким образом, вы получите любое значение из следующих 8 байтов на входе.
byte[] toRecv=new byte[lengthRecvd];
for(int i=0; i<lengthRecvd; i++){
toRecv[i]=dataInFromClient.readByte();
}
Здесь вы читаете столько байтов ввода, которые могут быть чем угодно, но также не записаны.
Удали все это.
String FileOrDirName=dataInFromClient.readUTF();
Вот, наконец, вы читаете данные, и это единственное, что на самом деле было записано.
Удивительно, что этот код не выдает IOException
какого-то рода.
Вы можете читать только с DataInputStream
данными, которые фактически были записаны соответствующим методом DataOutputStream
, кроме простых байтовых массивов.