Лекции.Орг


Поиск:




Категории:

Астрономия
Биология
География
Другие языки
Интернет
Информатика
История
Культура
Литература
Логика
Математика
Медицина
Механика
Охрана труда
Педагогика
Политика
Право
Психология
Религия
Риторика
Социология
Спорт
Строительство
Технология
Транспорт
Физика
Философия
Финансы
Химия
Экология
Экономика
Электроника

 

 

 

 


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




Лекция 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).

 

 





Поделиться с друзьями:


Дата добавления: 2017-03-12; Мы поможем в написании ваших работ!; просмотров: 570 | Нарушение авторских прав


Поиск на сайте:

Лучшие изречения:

Самообман может довести до саморазрушения. © Неизвестно
==> читать все изречения...

2489 - | 2332 -


© 2015-2024 lektsii.org - Контакты - Последнее добавление

Ген: 0.008 с.