Взаимодействие сетевых процессов с помощью сокетов
Лекция 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).
Статьи к прочтению:
- Взаимодействующие процессы
- В зависимости от среды обитания вирусы можно разделить на сетевые, файловые, спутники, загрузочные и файлово-загрузочные.
Интерфейс сокетов | Курс \
Похожие статьи:
-
Взаимодействие и синхронизация процессов и потоков
В мультипрограммных однопроцессорных системах процессы чередуются, обеспечивая эффективное выполнение программ. В многопроцессорных системах возможно не…
-
I. управление процессами с помощью диспетчера задач windows
ЛАБОРАТОРНАЯ РАБОТА №4 УПРАВЛЕНИЕ ПРОЦЕССАМИ В ОС WINDOWS РАБОТА С РЕЕСТРОМ WINDOWS Цель работы:приобрести практический опыт запуска, отслеживания…