Страница 1 из 1

Использование sockrtpairs и сообщений OOB(out-of-band data)?

Добавлено: 19 дек 2004, 23:33
Anonymous
Возникла необходимость использовать в программе socketpairs с типом передачи SOCK_STREAM. В последствии обнаружил, что есть такая штука как сообщения OOB, идущие вне основного потока, которые существенно облегчают задачу. Но при попытке отправить такое сообщение возникает ошибка EOPNOTSUPP(Operation not supported). Это значит, что принципиально невозможно использовать OOB и socketpairs, или нужно какой-нибудь флаг указать или еше что-нибудь сделать, чтобы наладить передачу?

Добавлено: 20 дек 2004, 01:32
mend0za
man 7 tcp

Код: Выделить всё

      TCP supports urgent data.  Urgent data is used to signal  the  receiver
       that  some  important  message  is  part of the data stream and that it
       should be processed as soon as possible.  To send urgent  data  specify
       the  MSG_OOB option to send(2).  When urgent data is received, the ker-
       nel sends a SIGURG signal to the reading process or the process or pro-
       cess  group  that  has  been  set for the socket using the SIOCSPGRP or
       FIOSETOWN ioctls. When  the  SO_OOBINLINE  socket  option  is  enabled,
       urgent  data  is put into the normal data stream (and can be tested for
       by the SIOCATMARK ioctl), otherwise it can be only  received  when  the
       MSG_OOB flag is set for sendmsg(2).

Вопрос снят

Добавлено: 20 дек 2004, 02:48
Anonymous
Не вопрос, TCP поддерживает urgent data, но он работает только в internet namespace.

При использовании функции socketpair() получается пара сокетов в локальном пространстве имен с протоколом по дефолту(другие для них не определены), который не поддерживает OOB.

Всем спасибо.