ТОР 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() Закрытие сокета Закрытие сокета
Не нашли, что искали? Воспользуйтесь поиском:
|