Мониторинг обменных курсов валют
18c0693f

Одна из возможных конфигураций программных гнезд



Допустимые комбинации протоколов и драйверов задаются
при конфигурации системы

По духу организация программных гнезд близка к идее
потоков
Но менее гибкая схема

Взаимодействие процессов основано на модели "клиент-сервер"

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

Два типа программных гнезд

Виртуальные соединения:

Дейтаграммные программные гнезда:

По умолчанию обеспечивается подходящий протокол
для каждой допустимой комбинации "домен-гнездо"


Создание нового программного гнезда:
sd = socket(domain, type,
protocol);

Закрытие (уничтожение) гнезда
close(sd)
Связывание ранее созданного программного гнезда
с именем:


bind(sd, socknm, socknlen);

Запрос связи с существующим программным гнездом
со стороны процесса-клиента:

connect(sd, socknm, socknlen);

Информирования о том, что процесс-сервер планирует
установление виртуальных соединений через указанное гнездо:

listen(sd, qlength);

Выборка процессом-сервером очередного запроса на
установление соединения с указанным программным гнездом служит
функция accept:
nsd = accept(sd, address, addrlen);

Передача и прием данных через программные гнезда
с установленным виртуальным соединением:


count = send(sd, msg, length,
flags);
count = recv(sd, buf, length,
flags);
В send:

В recv:

Вместо send
и
recv
можно использовать
read
и
write

Для посылки и приема сообщений в дейтаграммном
режиме:

count = sendto(sd, msg,
length, flags, socknm, socknlen);
count = recvfrom(sd, buf,
length, flags, socknm, socknlen);

Немедленная ликвидация установленного соединения:
shutdown(sd, mode);

shutdown отличаются
от close:






Самый выгодный курс обмена валюты