Я хочу прочитать байты сокета, отправленные с сервера. У меня есть эта часть кода. Но мой цикл while не завершает функцию read (), не возвращает мне -1 и не блокирует цикл while
Спасибо за вашу помощь.
//my received byte array size is not fixed is mutable
InputStream dis = sc.getInputStream();
ByteArrayOutputStream baos = new ByteArrayOutputStream();
int nRead =0;
//i am reading inputstream bytes per 1024 byte
byte[] data = new byte[1024];
//here if reader is the end of the stream must returns me -1 but don't return and my code
while(((nRead = dis.read(data,0,data.length)))!= -1)
{
try
{
baos.write(data,0,nRead);
}
catch (Exception exc)
{
exc.printStackTrace();
}
}
baos.flush();
final byte [] byteArray = baos.toByteArray();
А это мой код, как отправленоданные:
public void SendTo(ClientSocket socket, byte[] message)
{
try
{
if (socket.socket.Connected)
{
NetworkStream ns = new NetworkStream(socket.socket);
ns.Write(message, 0, message.Length);
ns.Flush();
ns.Close();
ns.Dispose();
}
else
{
clientSockets.Remove(clientSocket);
}
}
catch (SocketException exc)
{
}