Мне нужно получить полный пакет с другого IP (навигационное устройство) по TCP / IP.
Например, устройство должно периодически отправлять 966 байт (более одной минуты).
В моем случае первый принятый буфер имеет длину 256 байт (первый фрагмент пакета), второй - 710 байт (последний фрагмент пакета), третий - полный пакет (966 байт).
Как вручную установить минимальное значение для первой полученной длины буфера?
Это часть моего кода:
Executor bossExecutors = Executors.newCachedThreadPool();
Executor workerExecutors = Executors.newCachedThreadPool();
NioServerSocketChannelFactory channelsFactory =
new NioServerSocketChannelFactory(bossExecutors, workerExecutors);
ServerBootstrap bootstrap = new ServerBootstrap(channelsFactory);
ChannelPipelineFactory pipelineFactory = new NettyServerPipelineFactory(this.HWController);
bootstrap.setPipelineFactory(pipelineFactory);
bootstrap.setOption("child.tcpNoDelay", true);
bootstrap.setOption("child.keepAlive", true);
bootstrap.setOption("child.receiveBufferSizePredictorFactory",
new FixedReceiveBufferSizePredictorFactory(2048)
);
bootstrap.bind(new InetSocketAddress(this.port));