Soquete vs SocketChannel

Estou tentando entenderSocketChannelseNIO em geral. Eu sei como trabalhar com soquetes regulares e como fazer um simples servidor thread-por-cliente (usando os soquetes de bloqueio regulares).

Então minhas perguntas:

O que é um SocketChannel?Qual é o extra que recebo quando trabalho com um SocketChannel em vez de um Socket.Qual é a relação entre um canal e um buffer?O que é um seletor?A primeira sentença nodocumentação éA selectable channel for stream-oriented connecting sockets.. O que isso significa?

Eu li o tambémesta documentação, mas de alguma forma eu não estou entendendo ...

questionAnswers(3)

yourAnswerToTheQuestion