Концепция взаимодействия клиент-серверных программ с использованием UDP сокетов: Для передачи данных используются датаграммы.
Процесс подготовительных действий для сервера и используемые системные вызовы (на примере Linux):
- создание UDP сокета (socket);
- связывание с номером порта и IP-адресом сетевого интерфейса (bind);
- настройка адреса сокета;
- прием сообщений (recvfrom);
- обработка поступившей информации, отправка ответа (sendto), продолжение прослушивания.
Для клиента выполняются аналогичные действия. Для передачи данных по сети используется сетевой порядок байт (big-endian), это должно учитываться на хостах. Для передачи вещественных чисел данные преобразуются в другие типы. IP адрес преобразуется из символьного представления в числовое. При указании адреса используется конкретный адрес сетевого интерфейса или константа INADDR_ANY, для привязки ко всей системе.
Реализация клиента и сервера на языке Python (используются другие вызовы):
Запуск сервера чата
Сообщения, поступающие на сервер
Сообщения первого клиента
Сообщения второго клиента



