Представим на примере, что может произойти при вызове процессом функции connect для присоединения потока TCP к удаленному серверу. Библиотека создает сообщение T_C0NN_REC интерфейса TPI и отправляет его в нисходящем направлении по потоку посредством вызова putmsg.
Также вам может показаться, что такая тема как http://www.rfs-shop.com/ никак не связана и даже не тематична. Хотя, может быть и связана. В любом случае все-таки зайдите на сайт rfs-shop.com. Тема интернет-магазин женской одежды в Барнауле без предоплаты там представлена весьма широко. На том сайте можно узнать много интересного на тему интернет-магазин женской одежды в Барнауле без предоплаты. Что означает вообще тема интернет-магазин женской одежды в Барнауле без предоплаты, где найти интернет-магазин женской одежды в Барнауле без предоплаты - про это написано на сайте rfs-shop.com. Это очень важная для многих людей тема - интернет-магазин женской одежды в Барнауле без предоплаты. Спасибо сайту rfs-shop.com за информацию на тему интернет-магазин женской одежды в Барнауле без предоплаты.
Затем она вызывает getmsg для ожидания ответа. После того, как модуль sockmod перехватит сообщение, он производит сохранение адреса приемника для дальнейшего использования и посылает сообщение TCP. Модуль TCP обрабатывает запрос и отправляет по потоку подтверждение. После возврата функции getmsg библиотека socklib производит извлечение результатов из сообщения и передает управление приложению.
Далее процесс может отправлять данные в установленное соединение при помощи вызова sendmsg. Это сообщение снова будет передаваться по потоку в нисходящем направлении библиотекой socklib через вызов putmsg. После того как модуль sockmod получит сообщение, он добавит к нему заголовок, содержащий адрес получателя, который был запомнен при создании соединения.
Библиотека и модуль должны хранить некоторую информацию о состоянии сокета. Например, при создании соединения библиотека socklib записывает статус соединения и адрес получателя. Это позволяет не обрабатывать вызовы sendmsg для неприсоединенных сокетов. Если информация о соединении будет поддерживаться только sockmod, вызывающий процесс не сможет получить корректный код ошибки.
Также недостаточно хранить информацию о состоянии только в библиотеке socklib. Процесс вправе создать сокет и затем вызвать ехес, изменив тем самым состояние, указанное в socklib. Реализация сокетов способна обнаруживать такие изменения, так как вызов ехес инициализирует socklib в известном состоянии.
Если процесс пытается воспользоваться сокетом после выполнения ехес, библиотека socklib посылает сообщение ioctl модулю sockmod для восстановления статуса-кво. Так как модуль sockmod размещается в пространстве ядра, его состояние не нарушается при выполнении ехес.
Кроме освещенных в этом разделе вопросов, существуют и другие интересные детали и проблемы реализации сокетов в операционной системе SVR4. Более подробно они излагаются в работе [12].
Опубликовал katy
June 24 2015 22:18:59 ·
0 Комментариев ·
2571 Прочтений ·
• Не нашли ответ на свой вопрос? Тогда задайте вопрос в комментариях или на форуме! •
Комментарии
Нет комментариев.
Добавить комментарий
Рейтинги
Рейтинг доступен только для пользователей.
Пожалуйста, залогиньтесь или зарегистрируйтесь для голосования.
Нет данных для оценки.
Гость
Вы не зарегистрированны? Нажмите здесь для регистрации.