Главная

Популярная публикация

Научная публикация

Случайная публикация

Обратная связь

ТОР 5 статей:

Методические подходы к анализу финансового состояния предприятия

Проблема периодизации русской литературы ХХ века. Краткая характеристика второй половины ХХ века

Ценовые и неценовые факторы

Характеристика шлифовальных кругов и ее маркировка

Служебные части речи. Предлог. Союз. Частицы

КАТЕГОРИИ:






Разработка сетевых приложений




Для разработки сетевых программ, осуществляющих удаленную обработку операндов и обмен сообщениями по технологии “клиент-сервер”, используется прикладной программный интерфейс сокетов (Sockets API). Данный интерфейс предоставляет программисту набор функций, которые обеспечивают и дентификацию конечных точек соединения (сокетов), установку соединения, отправку сообщений, ожидание входящих сообщений, разрыв соединения и обработкуошибок. Выбор конкретного программного интерфейса сокетов (Sockets API) зависит от используемого языка программирования и операционной системы.

К функциям интерфейса сокетов можно обращаться из программ, написанных на языках C, C++, Pascal, VBasic. Наиболее распространенными являются два интерфейса: сокеты Беркли (OS UNIX) и интерфейс WINSockAPI (OS Windows).

Сокеты – это конечные точки связи. Пара сокетов представляет соединение между двумя взаимодействующими вычислительными системами. Соединение задается парой IP-адресов и парой номеров портов. Порт идентифицирует (отождествляет) адресуемый процесс в хосте. Например, сокет 192.168.1.20:80 обозначает TCP-порт 80 веб сервера на хосте 192.168.1.20. Порт 80 служит для идентификации пользовательского процесса, соответствующего протоколу HTTP. Пара сокетов с помощью пары IP-адресов и пары номеров портов идентифицирует отправителя и получателя.

Программное приложение, использующее сокеты, состоит из программ, исполняемых на двух хостах, соединенных каналом связи. Программа, которая инициирует передачу данных, называется клиентом. Программа, размещенная на другом конце соединения, называется сервером и пассивно ожидает входящих запросов на установку соединения от удаленных клиентов. Серверное приложение загружается при запуске соответствующей вычислительной системы и “прослушивает свой хорошо известный порт”, ожидая входящих сообщений.

Клиентские приложения ”пытаются” установить соединение с сервером, а после удачной попытки начинается обмен по заданному протоколу, например, TCP. По завершении сеанса связи клиент разрывает соединение.

Взаимодействие сокетов с помощью набора примитивов, представленных выше в тексте и размещаемых в специальной библиотеке функций сокетов, может быть представлено следующей схемой. Полагаем, что для обмена данными используется коммуникационный домен вида AF-INET, а тип сокета SOCK-STREAM.

Сервер Клиент

socket() socket()

Создание сокета Создание сокета

 

bind() bind()

Привязка сокета к адресу Привязка сокета к адресу

 

Далее по инициативе кли-

listen() ента нужно достичь состояния полно

Переключение сокета в режим установленного соединения. Для это-

прослушивания (приема) го с помощью функции connect() вы-

полняется трехэтапное согласование

порядка обмена пакетами. На этапе 1

клиент посылает серверу специаль-

ный пакет SIN, в котором содержатся

номера пакетов. На этапе 2 сервер

подтверждает получение пакета SIN.

Для подтверждения сервер отправляет

клиенту пакет SIN и пакет ACK подт-

верждения. На этапе 3 клиент, получив

пакет ACK тоже посылает пакет ACK.

 

accept() connect()

Ожидание соединения Установление соединения

 

send()/recv() <<<< >>>> send()/recv()

Отправка/принятие пакета Отправка/принятие пакета

 

closesocket() closesocket()

Закрытие сокета Закрытие сокета

 






Не нашли, что искали? Воспользуйтесь поиском:

vikidalka.ru - 2015-2024 год. Все права принадлежат их авторам! Нарушение авторских прав | Нарушение персональных данных