Un socket es un método de comunicación entre programas cliente y servidor a través de una red. Un socket combina una dirección IP y un número de puerto para identificar el punto final de una conexión. Los sockets permiten el intercambio transparente de datos entre programas posiblemente ubicados en computadoras distintas. Existen sockets síncronos y asíncronos, y diferentes tipos como stream (TCP), datagrama (UDP) y raw.