рефераты конспекты курсовые дипломные лекции шпоры

Реферат Курсовая Конспект

Пересылка данных

Пересылка данных - раздел Менеджмент, Управление ресурсами в ОС UNIX Для Сокетов Типа Sock_Stream Дескрипторы Сокетов, Полученные...

Для сокетов типа SOCK_STREAM дескрипторы сокетов, полученные сервером посредством вызова accept() и клиентом с помощью вызова socked(), могут использоваться для чтения или записи. Для этого могут использоваться обычные вызовы read() и write(), либо специальные системные вызовы send() и recv(), позволяющие задавать дополнительные параметры пересылки данных по сети. Синхронизация данных при работе с сокетом аналогична передаче данных через программный канал.

#include<sys/types.h>

#include<sys/socket.h>

ssize_t recv (int sockfd, void *buffer, size_t length, int flags);

ssize_t send (int sockfd, const void *buffer, size_t length, int flags);

  • socfd - дескриптор сокета, через который читаются или записываются данные;
  • buffer - буфер, в который они помещаются или откуда отсылаются через сокет;
  • length - размер буфера;
  • flags - поле дополнительных опций при получении или передаче данных.

В случае успешного чтения/записи системные вызовы send() и recv() возвращают число прочитанных/отосланных байт, или -1 в случае ошибки; в случае разорванной связи (клиент разорвал TCP-соединение) вызов recv() (или read()) возвращают нулевое значение; если процесс пытается записать данные через разорванное TCP-соединение посредством write() или send(), то он получает сигнал SIGPIPE, который можно обработать, если предусмотрена обработка данного сигнала.

В случае flags = 0 вызовы send() и recv() полностью аналогичны системным вызовам read() и write().

Возможные комбинациями констант параметра flags системнного вызова send():

  • MSG_PEEK Процесс может просматривать данные, не "получая" их;
  • MSG_OOB Обычные данные пропускаются. Процесс принимает только срочные данные, например, сигнал прерывания;
  • MSG_WAITALL Возврат из вызова recv произойдет только после получения всех данных.

Возможные комбинациями констант параметра flags системного вызова recv():

  • MSG_OOB Передать срочные (out of band) данные;
  • MSG_DONTROUTE При передаче сообщения игнорируются условия маршрутизации протокола более низкого уровня. Обычно это означает, что сообщение посылается по прямому, а не по самому быстрому маршруту (самый быстрый маршрут не обязательно прямой и может зависеть от текущего распределения нагрузки сети).

Данные операции выполняются и в программе сервера и в программе клиента.

– Конец работы –

Эта тема принадлежит разделу:

Управление ресурсами в ОС UNIX

Управление ресурсами в ОС UNIX... ВВЕДЕНИЕ... Одной из задач любой операционной системы ОС является поддержание надежного и эффективного механизма управления...

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

Что будем делать с полученным материалом:

Если этот материал оказался полезным ля Вас, Вы можете сохранить его на свою страничку в социальных сетях:

Все темы данного раздела:

Методические указания к лабораторной работе
Обычно в ОС UNIX доступны несколько интерпретаторов. Наиболее распространены Bourne-shell (или просто - shell), C-shell, Korn-shell. В идейном плане все эти интерпретаторы близки и в дальнейшем реч

Контpольные вопpосы
21. Что такое внутренние и внешние команды Shell-интерпретатора? Приведите примеры внутренних команд. 22. Какие существуют средства группирования команд? Приведите примеры использования.

Методические указания к лабораторной работе
Интерфейс между пользовательской программой и внешним устройством (или между двумя пользовательскими программами) в ОС UNIX осуществляется в рамках единой структуры данных, называемой файлом ОС UNI

Функции для работы с файловой системой
Возвращают дескриптор файла Преобразуют имя в описатель Назначают inode Работают с атрибутами Ввод/вывод из файла

Методические указания к лабораторной работе
Основным назначением системы управления вводом-выводом ОС UNIX является создание интерфейса между программой и внешним усройством компьютера. Поскольку любая операция ввода-вывода осуществляется ка

Контpольные вопpосы
1. Какова структура описателей файлов, таблицы файлов, таблицы открытых файлов процесса? 2. Какова цепочка соответствия дескриптора файла, открытого процессом, и файлом на диске?

Методические указания к лабораторной работе
Для порождения нового процесса (процесс-потомок) используется системный вызов fork(). Формат вызова: int fork() Порожденный таким образом процесс представляет собой точную копию с

Методические указания к лабораторной работе
В предыдущей лабораторной работе были рассмотрены различные программные средства, связанные с созданием и управлением процессами в рамках ОС UNIX. Данная лабораторная работа предполагает комплексно

Методические указания к лабораторной работе
При выполнении операции перенаправления ввода-вывода важным моментом является наследование пользовательских дескрипторов, осуществляемое с помощью системных вызовов dup() и fcntl(). Систем

Методические указания к лабораторной работе
Механизм IPC (Inter-Process Communication Facilities) включает: средства, обеспечивающие возможность синхронизации процессов при доступе к совместно используемым ресурсам (семафоры -

I. Семафоры.
Для работы с семафорами поддерживаются три системных вызова: semget() для создания и получения доступа к набору семафоров; semop() для манипулирования значениями семафоров

II. Очереди сообщений.
Для обеспечения возможности обмена сообщениями между процессами механизм очередей поддерживается следующими системными вызовами: msgget() для образования новой очереди сообщений или

Адресация и создание сокета
Совокупная информация об адресе, порте программы-адресата (абонента), модели соединения, протоколе взаимодействия составляет т.н. сокет (конечная абонентская точка), формально представляющий собой

Int socket (int domain, int type, int protocol);
Параметр domain - домен связи, в котором будет использоваться сокет (значение AF_INET - для домена Internet (соединение через сеть), AF_UNIX

Связывание
Системный вызов bind() связывает сетевой адрес компьютера с идентификатором сокета. #include<sys/types.h> #include<sys/socket.h&

Прием запроса на установку TCP-соединения
Когда сервер получает от клиента запрос на соединение, он создает новый сокет для работы с новым соединением. Первый же сокет используется только для установки соединения. Дополнительный сокет для

Подключение клиента
Для выполнения запроса на подключение к серверному процессу клиент использует системный вызов connect(). #include<sys/types.h> #inc

Хотите получать на электронную почту самые свежие новости?
Education Insider Sample
Подпишитесь на Нашу рассылку
Наша политика приватности обеспечивает 100% безопасность и анонимность Ваших E-Mail
Реклама
Соответствующий теме материал
  • Похожее
  • Популярное
  • Облако тегов
  • Здесь
  • Временно
  • Пусто
Теги