title: Using NIO DatagramChannel will I need to handle partially read/written packets?
body: <p>When using SocketChannel, you need to retain read and write buffers to handle partial writes and reads.</p>
  
  <p>I have a nagging suspicion that it might not be needed when using a DatagramChannel, but info is scarce.</p>
  
  <p>What is the story? </p>
  
  <p>Should I call (non-blocking) receive(ByteBuffer) repeatedly until I get a null back to read all waiting datagrams? </p>
  
  <p>When sending in non-blocking mode, can I rely on send(ByteBuffer, SocketAddress) to either send the the whole buffer or rejecting it entirely, or do I need to possibly keep partially written buffers?</p>