Клиентские и серверные сокеты отличаются по своему назначению и поведению. 1
Серверный сокет — это функция в программе, которая сидит на определённом порту и «слушает» входящие соединения. 1 Он ждёт, когда к нему подключится клиент, и тогда продолжает выполнение программы и может считывать данные из сокета и отправлять их в сокет. 1
Клиентский сокет, наоборот, сразу пытается подключиться к определённому узлу сети (это может быть локальная машина или, чаще, удалённый компьютер) и на определённый сетевой порт. 1 Если на этой машине на этом порту уже есть серверный сокет, то подключение происходит успешно. 1
Таким образом, клиентское приложение (например, браузер) использует только клиентские сокеты, а серверное (например, веб-сервер, которому браузер посылает запросы) — как клиентские, так и серверные сокеты. 3