title: Non-blocking UDP I/O vs blocking UDP I/O in Java
body: <p>Non-blocking TCP/IP <code>SocketChannel</code>s and <code>Selector</code> in NIO help me to handle many TCP/IP connections with small number of threads.  But how about UDP <code>DatagramChannels</code>?  (I must admit that I'm not very familiar with UDP.)</p>
  
  <p>UDP send operations don't seem to block even if the <code>DatagramChannel</code> is not operating in blocking mode.  Is there really a case where <code>DatagramSocket.send(DatagramPacket)</code> blocks due to congestion or something similar?  I'm really curious if there's such a case and what the possible cases exist in a production environment.</p>
  
  <p>If <code>DatagramSocket.send(DatagramPacket)</code> doesn't actually block and I am not going to use a connected <code>DatagramSocket</code> and bind to only one port, is there no advantage of using non-blocking mode with <code>DatagramChannel</code> and <code>Selector</code>?</p>