Socket vs SocketChannel

estoy tratando de entenderSocketChannelsyNIO en general. Sé cómo trabajar con sockets regulares y cómo crear un servidor de subprocesos por cliente simple (utilizando los sockets de bloqueo normales).

Así que mis preguntas:

¿Qué es un SocketChannel?¿Qué es el extra que obtengo al trabajar con un SocketChannel en lugar de un Socket?¿Cuál es la relación entre un canal y un búfer?¿Qué es un selector?La primera sentencia en eldocumentación esA selectable channel for stream-oriented connecting sockets.. Qué significa eso?

He leído el tambiénesta documentación, pero de alguna manera no lo entiendo ...

Respuestas a la pregunta(3)

Su respuesta a la pregunta