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