1. Los sockets permiten la comunicación entre procesos en diferentes máquinas de una red. Java incluye las clases Socket y ServerSocket para establecer comunicaciones entre clientes y servidores.
2. Los clientes se conectan a servidores a través de sockets utilizando streams de entrada y salida. Los servidores escuchan en un puerto para aceptar conexiones de clientes mediante sockets.
3. Las clases DataInputStream, DataOutputStream y PrintStream facilitan la lectura y escritura de datos primitivos y cadenas entre clientes y servidores