Netty bootstrap ChannelOption.SO_RCVBUF defaults to 2048.
Messages are truncated when receiving larger messages.
DatagramSocketOptions.setReceiveBufferSize does not seem to update the RCVBUF size. Previous documentation states this is for TCP.
I cannot find a way to solve this issue. Code snippet output verifies 2048 receive buffer size.
Code Snippet -----
DatagramSocketOptions options = new DatagramSocketOptions();
options.setReuseAddress(true);
options.setReceiveBufferSize(4096);//65536);
DatagramSocket socket = vertx.createDatagramSocket(options);
socket.listen(port, host, socketResult -> {
if (socketResult.failed()) {
throw new RuntimeException("Streaming connection failed to be created", socketResult.cause());
}
socket.handler(udpPacket -> {
String xmlPacket = null;
try {
Buffer buffer = udpPacket.data();
byte[] bytes = buffer.getBytes();
ByteBuf bBuffer = buffer.getByteBuf();
ByteBuffer nioBBuffer = bBuffer.nioBuffer();
System.out.println("Buffer length = " + buffer.length() + ", bytes length=" + bytes.length + "");
System.out.println("Buffer toString length = " + buffer.toString().length());
System.out.println("BBuffer # buffers = " + bBuffer.nioBuffers().length);
System.out.println("NIO BBuffer size = " + nioBBuffer.array().length + ", offset=" + nioBBuffer.arrayOffset() + ", limit=" + nioBBuffer.limit() + "\n" + nioBBuffer.toString());
xmlPacket = new String(udpPacket.data().getBytes(), Charset.forName("UTF-8"));
xmlPacket = xmlPacket.trim();
processXmlMessage(xmlPacket);
} catch (Exception e) {
}
});
});