Проблема: поврежден сегмент TCP.
Я посылаю последовательность ByteBuffers снова и снова в SocketChannel. Последовательность следующая:
\r\n
length of chunk (example: fff)
\r\n
chunk data (rubbish, a 1000 - 5000 character long string)
\r\n
length of next chunk (example: fff)
\r\n
next chunk data (rubbish, a 1000 - 5000 character long string)
...
Я надеюсь, что вы видите шаблон. MTU на уровне сети составляет около 1500, поэтому он будет создавать сегменты TCP для отправки через «данные чанка».
Проблема в сегментах: Каким-то образом (?), Случайно (?), Сегмент (его полезная нагрузка) начинается с \ r \ n вместо оставшихся байтов из «данных чанка» первыми.
Итак, вы получите, например:
(segment 1)
\r\n
length of chunk (example: fff)
\r\n
chunk data (456 bytes)
(segment 2)
\r\n
chunk data (remaining 156 bytes)
length of next
\r\n
Вместо:
(segment 1)
\r\n
length of chunk (example: fff)
\r\n
chunk data (456 bytes)
(segment 2)
chunk data (remaining 156 bytes)
\r\n
length of next
\r\n
Я хотел бы знать, способен ли Java-код вызывать это, зная, что мой ByteBuffer с "порциями" отправил правильно, за исключением ByteBuffer, содержащего \ r \ n, который присоединяется ...
Любая помощь приветствуется, спасибо за ваше время!
Andrew