Я пытаюсь отправить байтовый массив размером в гигабайт через сокет Java моему клиенту в C #, но около 580 тыс. Записей в моих данных потеряно.Я устанавливаю каждую запись в моем массиве на 10, но в определенный момент они становятся 0.
Мой код Java:
OutputStream outputStream = objSocket.getOutputStream();
byte[] dataBytesLength = new byte[4];
int toSendLen = dataBytes.length;
dataBytesLength[0] = (byte)(toSendLen & 0xff);
dataBytesLength[1] = (byte)((toSendLen >> 8) & 0xff);
dataBytesLength[2] = (byte)((toSendLen >> 16) & 0xff);
dataBytesLength[3] = (byte)((toSendLen >> 24) & 0xff);
outputStream.write(dataBytesLength);
outputStream.write(dataBytes);
Мой код C #:
byte[] receivedLengthBytes = new byte[4];
Socket.Receive(receivedLengthBytes);
int receivedLength = BitConverter.ToInt32(receivedLengthBytes, 0);
byte[] receivedBytes = new byte[receivedLength];
Socket.Receive(receivedBytes);
Если я перебираю массив полученных байтов, все после 589824 равно 0. ЯЯ не уверен, почему происходит такая потеря данных, и, к сожалению, разделить ее на множество фрагментов по 500 тыс. не удастся.