21.5.4 Другие запросы

21.5.4 Другие запросы

Оставшиеся запросы используются клиентом и сервером аналогичным способом. Данные могут быть переданы и получены через обычные запросы записи и чтения. Соединение может быть закрыто по запросу close. Существуют также специальные запросы send и recv, поддерживающие отправку и получение как срочных, так и обычных данных:

send() Запись буфера данных в socket. Как альтернативу можно применить write().
sendv() Пересылка в socket последовательности буферов. Как альтернативу можно применить writev().
recu() Получение буфера данных из socket либо из read().
recvmsg() Получение последовательности буферов из socket либо из readv().

Иногда программе нужна информация, хранящаяся в TCB:

getsockopt() Чтение выбранной информации из TCB. Иногда система обеспечивает необязательные системные запросы ввода/вывода, которые позволяют читать различные части TCB.

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

setsockopt() Устанавливает значения нескольких параметров TCB, например размеры приемного и выходного буферов, пересылку срочных данных в общем порядке оправки информации либо блокировку закрытия соединения до благополучной отправки всех данных.
iocntl() Устанавливает ввод/вывод в socket в режим блокирования
или fcntl() или снимает блокирование.

На рис. 21.2 демонстрируется последовательность вызовов в типичном сеансе TCP. Вызовы socket(), bind() и listen() обрабатываются очень быстро, и на них немедленно возвращается ответ.

Рис. 21.2. Последовательность программных вызовов в socket TCP

Вызовы accept(), send() и recv() предполагаются в режиме блокирования (что является их обычным значением по умолчанию). Вызов send блокируется и при переполнении выходного буфера TCP. Вызовы write() и read() можно использовать вместо send() и recv().

Поделитесь на страничке

Следующая глава >

Похожие главы из других книг

Запросы по запросу

Из книги Блоги. Новая сфера влияния автора Попов Антон Валерьевич

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


Запросы на объединение

Из книги Обработка баз данных на Visual Basic®.NET автора Мак-Манус Джеффри П

Запросы на объединение Запрос на объединение (union query) выполняет объединение содержимого двух таблиц, имеющих одинаковые структуры полей. Это оказывается полезным, когда нужно отобразить в одном результирующем наборе потенциально не связанные записи из нескольких


Запросы на обновление

Из книги TCP/IP Архитектура, протоколы, реализация (включая IP версии 6 и IP Security) автора Фейт Сидни М

Запросы на обновление Запрос на обновление может изменить сразу целую группу записей. Этот запрос состоит из трех частей:• предложение UPDATE, которое указывает на обновляемую таблицу;• предложение SET, задающее данные для обновления;• необязательный критерий WHERE,


Запросы

Из книги Firebird РУКОВОДСТВО РАЗРАБОТЧИКА БАЗ ДАННЫХ автора Борри Хелен

Запросы Аналогично сценариям создания и изменения, с помощью Visual Studio .NET можно генерировать запросы. За исключением тривиальных запросов, конструктор запросов с графическим пользовательским интерфейсом позволяет более эффективно и безошибочно создавать самые сложные


5.24.3 Обратные запросы ARP

Из книги Access 2002: Самоучитель автора Дубнов Павел Юрьевич

5.24.3 Обратные запросы ARP Один из вариантов ARP называется обратным запросом (reverse ARP — RARP) и служит для определения узлом собственного IP-адреса. Такие запросы предназначены для бездисковых рабочих станций и других устройств, которые получают конфигурационную информацию от


7.6.1 Эхо-запросы и эхо-ответы

Из книги Мир InterBase. Архитектура, администрирование и разработка приложений баз данных в InterBase/FireBird/Yaffil автора Ковязин Алексей Николаевич

7.6.1 Эхо-запросы и эхо-ответы Эхо-запросы (Echo Request) и эхо-ответы (Echo Reply) применяются для проверки активности системы. Код типа 8 применяется в запросах, а код 0 — в ответах. Количество октетов в поле данных переменно и может выбираться отправителем.Отвечающая сторона должна


Сложные запросы

Из книги Разработка ядра Linux автора Лав Роберт

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


Запросы на изменение

Из книги S. D. F. автора Cat W

Запросы на изменение Запросы на изменение дают возможность корректировать данные, содержащиеся в таблицах.Существует четыре вида запросов на изменение:• запрос на создание таблицы – создает новую таблицу на основе данных, которые уже размещены в одной или нескольких


ГЛАВА 20. Запросы DML.

Из книги автора

ГЛАВА 20. Запросы DML. Приложения пользователя могут получить доступ к таблицам Firebird только одним путем - выполняя к ним запрос. По своей сущности запрос является оператором SQL, который передается на сервер. Оператор SQL является выражением, состоящим из ключевых слов, фраз и


Запросы UNION

Из книги автора

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


Запросы на выборку

Из книги автора

Запросы на выборку Простые запросыПод простыми запросами будем понимать запросы, ограниченные одной таблицей и не содержащие каких-либо критериев, условий, фильтров и т. д. Пример такого запроса – вывод какой-либо таблицы полностью, пусть это будет таблица Страны. Чаще


Редактируемые запросы

Из книги автора

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


Запросы

Из книги автора

Запросы Отдельные запросы представляются с помощью структуры struct request, которая тоже определена в файле <linux/blkdev.h>. Каждый запрос может состоять из более чем одной структуры bio, потому что один запрос может содержать обращение к нескольким смежным дисковым блокам.


Первые запросы

Из книги автора

Первые запросы - Ну, что, давай попробуем.- Открой или сделай новую базу и выполни следующий запрос: CREATE TABLE Salespeople( snum integer,sname char (10),city char (10),comm decimal ); * Говорит что все OK.- Перейди на первую закладку и нажми кнопку Show DB.* Ура!! Заработало!!- Рано кричать, закрой программу, включи