Использование sockrtpairs и сообщений OOB(out-of-band data)?
Использование sockrtpairs и сообщений OOB(out-of-band data)?
Возникла необходимость использовать в программе socketpairs с типом передачи SOCK_STREAM. В последствии обнаружил, что есть такая штука как сообщения OOB, идущие вне основного потока, которые существенно облегчают задачу. Но при попытке отправить такое сообщение возникает ошибка EOPNOTSUPP(Operation not supported). Это значит, что принципиально невозможно использовать OOB и socketpairs, или нужно какой-нибудь флаг указать или еше что-нибудь сделать, чтобы наладить передачу?
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).
И увидел я зверя, выходящего из тундры. И число его было 3.14159265358979324...
Вопрос снят
Не вопрос, TCP поддерживает urgent data, но он работает только в internet namespace.
При использовании функции socketpair() получается пара сокетов в локальном пространстве имен с протоколом по дефолту(другие для них не определены), который не поддерживает OOB.
Всем спасибо.
При использовании функции socketpair() получается пара сокетов в локальном пространстве имен с протоколом по дефолту(другие для них не определены), который не поддерживает OOB.
Всем спасибо.