Лабораторная работа: Создание простейшего сервера в ОС QNX

Адрес сети интернет называется IP-адресом. Если компьютер подключен к сети интернет, то соответственно он имеет IP-адрес. Длина адреса Интернет составляет 4 байта или 32 бита. На одном компьютере может работать несколько приложений, поэтому второй составляющей адреса интернет является порт. В терминологии TCP/IP понятие «порт» очень похоже на IP-адрес. Различия: порт обозначает приложение, а IP-адрес – сетевой компьютер. В адресации Интернет порт занимает 2 байта или 16 бит (тип – integer).

bind(S, local_address, address_length);

где:

– Sэто дескриптор сокета, полученный от функции socket.

– local_address – локальный адрес сокета, являющийся указателем на структуру данных адреса сокета специального вида.

– address_length – указывает длину структуры данных адреса сокета.

Когда сервер желает предложить один из своих сервисов, он связывает сокет с общеизвестным адресом, ассоциирующимся с данным сервером, и пассивно слушает этот сокет. Для этих целей используется вызов функции listen:

listen(S, qlength);

где:

– S – дескриптор сокета.

– qlength – максимальное количество запросов на установление связи, которые могут стоять в очереди, ожидая обработки сервером. Выберем qlength=10.

Когда сервер получает запрос от клиента и принимает решение об установлении связи, он создает новый сокет и связывает его с ассоциацией (в internet домене ассоциация складывается из локального и удаленного адреса и из локального и удаленного порта), эквивалентной «слушающему сокету». Для этого используется вызов функции accept:

New=аccept(S, clientaddr, clientaddrlen);

Сокет, ассоциированный клиентом, и сокет, который был возвращен функцией accept, используются для установления связи между сервером и клиентом.

Когда связь установлена, может начаться процесс передачи данных. Посылать и получать сообщения можно с помощью функций write и read соответственно:

write(S, buffer, sizeof(buffer));

read(S, buffer, sizeof(buffer));

где:

– S – дескриптор сокета;

– buffer – буфер сообщения, указывает на буфер, то есть область памяти, в которой расположены передаваемые данные.

– sizeof(buffer) – длина буфера, то есть количество данных для передачи.

Закрывается сокет с помощью функции close:

сlose(S)

где S – дескриптор закрываемого сокета.

После запуска, данная программа создает простейший Web-сервер, который постоянно запущен. Чтобы обратиться к этому серверу, необходимо в командной строке браузера написать IP адрес компьютера, на котором запущен сервер и порт (в нашем случае порт 3128). На рис. 1 представлен пример обращения к серверу.

Рис. 1

Вывод: В данной лабораторной работе мы научились работать с сокетами и создали простейший Web-сервер в операционной системе QNX.

К-во Просмотров: 182
Бесплатно скачать Лабораторная работа: Создание простейшего сервера в ОС QNX