Взаимодействие сетевых процессов с помощью сокетов

      Комментарии к записи Взаимодействие сетевых процессов с помощью сокетов отключены

Лекция 14

Socket– соединитель. Основные операционные среды (Unix, Windows) базируются в настоящее время на идеологии соединителей (Socket). Эта технология была разработана в университете г.Беркли (США) для системы Unix, поэтому соединители иногда называют соединителями Беркли (Berkeley sockets). Впервые идея соединителя была использована в системе 4.3 BSD Unix для организации сетевого ввода/вывода. Соединители реализуют механизм взаимодействия не только сетевых программ и процессов, но и программ и процессов внутри ЭВМ.

Технология соединителей поддерживает работу с любыми стеками протоколов. Набор операторов, поддерживающих работу соединителей, образует отдельную динамическую библиотеку (в Windows – WinSock).

В сетевых системах пара комбинаций IP-адресов и номеров портов однозначно определяет канал связи между двумя процессами в ЭВМ. Такая комбинация называется соединителем (socket). Номера портов могут и совпадать, так как относятся к разным машинам, но IP-адреса должны быть обязательно разными.

Процедура передачи данных с помощью сокетов.

На стороне сервера:

1. Создание сокета с указанием набора используемых протоколов (это может быть набор Internet, Unix, AppleTalk и т.д.) и конкретного протокола, с помощью которого будет производиться передача данных (TCP, UDP). Процедура – socket.

2. Присвоение созданному соединителю определенного IP-адреса и номера порта. Процедура – bind.

3. Переход в режим ожидания и подготовка соединителя к обработке потока запросов на соединение. При этом организуется очередь запросов. Процедура – listen.

4. Извлечение запросов на соединение из очереди и их обработка. Процедура accept. Если очередь запросов пуста, то accept блокирует программу до получения запроса на соединение. Для предотвращения блокирования можно предварительно с помощью процедуры Select убедиться, что очередь запросов не пуста, и только после этого вызвать процедуру accept. После прихода запроса на соединение создается дополнительный сокет для обмена данными с клиентом.

5. Обмен данными с клиентом через дополнительный сокет. Для отправки данных клиенту используетсяпроцедура Send, для получения данных от клиента – процедура Recv.

6. Выключение и закрытие дополнительного сокета (процедуры Shutdown иCloseSocket).

7. Переход к шагу 4.

На стороне клиента:

1. Создание сокета с указанием набора используемых протоколов (это может быть набор Internet, Unix, AppleTalk и т.д.) и конкретного протокола, с помощью которого будет производиться передача данных (TCP, UDP). Процедура – socket.

2. Формирование запроса на соединение с сервером с указанием его IP-адреса и номера порта. Процедура connect.

3. Обмен данными с сервером через слозданный сокет. Для отправки данных клиенту используетсяпроцедура Send, для получения данных от клиента – процедура Recv.

4. Выключение и закрытие сокета (процедуры Shutdown иCloseSocket).

Статьи к прочтению:

Интерфейс сокетов | Курс \


Похожие статьи: