¿Cuál es la diferencia entre el tipo SOCKET y CSOCKET?
El SOCKET que mencionaste aquí es un tipo de variable, que en realidad es del tipo int.
CSOCKET es una clase que ya contiene algunos objetos y algoritmos para la comunicación de socket. Después de definir un objeto, puede llamar directamente a estos algoritmos sin escribirlos usted mismo.