uhmmm... yo no he visto gestión "de Hooks" en las librerías de Socket: Poner una función de callback para eventos del tema. Puedes en algunos sistemas operativos como el "ventanuco" interceptar el servicio de Winsock con un hook y controlar todos los sockets que se abren...
Lo de hooks era para que te hicieses una idea
En el caso de un uso "normal": esto es controlar tus sockects desde tu propia aplicación, lo único que en teoría puedes hacer es un hilo de proceso a parte (un thread) que este testando si ha llegado información al socket. Para eso lo mas practico (que no indispensable) es hacer al socket "no bloqueante" y así puedes realizar las operaciones sin problemas...
Sí que es esto lo que quiero decir, lo que no entiendo es lo de hacer el socket "no bloqueante"
No he oido nunca eso...