Статья: Механизмы межпроцессных взаимодействий в операционной системе Unix

count = recv(sd, buf, length, flags);

В send:

msg указывает на буфер с данными, которые требуется послать

length - длина этого буфера

flags == MSG_OOB внеочередная посылка данных

В recv:

buf указывает на буфер, в который следует поместить принимаемые данные

length - максимальная длина этого буфера

flags == MSG_PEEK перепись сообщения в пользовательский буфер без его удаления из системных буферов

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

выполняются аналогично send и recv

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

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

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

смысл параметров sd, msg, buf и lenght аналогичен смыслу одноименных параметров функций send и recv

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

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

параметры socknm и socknlen функции recvfrom позволяют серверу получить имя пославшего сообщение процесса-клиента

Немедленная ликвидация установленного соединения:

shutdown(sd, mode);

немедленно остановить коммуникации

со стороны посылающего процесса

со стороны принимающего процесса

с обеих сторон

в зависимости от значения параметра mode

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

выполнение close последней "притормаживается" до окончания попыток системы доставить уже отправленные сообщения

shutdown разрывает соединение, но не ликвидирует дескрипторы ранее соединенных гнезд

для ликвидации требуется вызов close

К-во Просмотров: 364
Бесплатно скачать Статья: Механизмы межпроцессных взаимодействий в операционной системе Unix