На стороні сервера (server-side):
- Зазвичай сервер працює на певному комп'ютері, має серверний сокет (Server Socket), прив'язаний до певного номера порту (Port number). Серверні програми (Server program) просто чекають, слухаючи серверний сокет (Server Socket) для клієнта, щоб виконати запит з'єднання.
На стороні клієнта (client-side):
- Клієнт знає ім'я машини, на якій працює сервер (server), і номер порту, на якому сервер прослуховує. Щоб зробити запит на з'єднання, клієнт намагається зустрітися з сервером на комп'ютері і в порту сервера. Клієнт також повинен ідентифікувати себе з сервером, щоб він зв'язався з локальним портом, який буде використовуватися під час цього з'єднання. Зазвичай це призначається операційною системою.
На стороні клієнта, якщо з'єднання прийнято, сокет успішно створюється, і клієнт може використовувати сокет для зв'язку з серверної програмою.
Тепер клієнт і сервер можуть взаємодіяти, записуючи або читаючи їх сокети (Socket).
Дані, записані в вихідний потік на Socket клієнта, будуть надходити на вхідний потік Socket на сервері. І навпаки, дані, що записуються в вихідний потік на Socket на сервері, будуть передаватися в вхідний потік Socket клієнта.
Socket є однією кінцевою точкою двосторонньої лінії зв'язку між двома програмами, запущеними в мережі. Socket прив'язаний до номера порту (певний номер), щоб рівні TCP (TCP Layer) могли ідентифікувати додаток, з яким призначені дані для відправки.