I am trying to send a UDP datagram (containing a protocol buffer message) and receiving too long messages:
java.io.IOException: Message too long at java.net.PlainDatagramSocketImpl.send(Native Method) at java.net.DatagramSocket.send(DatagramSocket.java:625)
I set the size of the send buffer and checked the return value from getBufferSize (), and it is larger than the message:
byte[] b = msg.toByteArray(); System.out.println( "Serialised message in " + b.length + " bytes (max length: " + network.getSendBufferSize() + ")"); DatagramPacket p = new DatagramPacket( b, b.length, host, port ); network.send( p );
Outputs:
VM version: 16.3-b01-279 Runtime version: 1.6.0_20-b02-279-9M3165 Vendor: Apple Inc. Serialised message in 69424 bytes (max length: 531075) Problem sending packet: java.io.IOException: Message too long
I could understand if he refused to install a large buffer, but it seems that he tunes everything that I ask, and then does not comply with it.
This is on OSX; I tried both with 1.6 and 1.5
source share