As far as I understand the APIs the "new" NIO DatagramChannel, SocketChannel can be configured in blocking mode too so why does netty use the oldschool DatagramSocket/ServerSocket classes for the OIO backend? Wouldn't it be more performant to simpyl use DatagramChannel/SocketChannel in blocking mode? Because in the new APIs ByteBuffers can be used (especially direct ByteBuffers) instead of byte[] which would lead to better performance for the blocking backend. In my opinion the blocking backend is important too because it can perform much better in scenarios with very few connections (e.g. a udp server, tcp forwarder, ...).
Dunno if there are some details which I don't know about yet which lead to the decision to keep using the old socket classes.
Greetings,
Simon