LINUX.ORG.RU

Ответ на: комментарий от generatorglukoff

причем тут select вообще, ясный пень что дискрипторы возвращаемые accept() select/poll обрабатывать.

T-34
() автор топика

нахрена? создай два пройцесса на каждый порт, потом пиши в шареную память. из неё читай.

vilfred ☆☆
()
Ответ на: комментарий от vilfred

не катит, это не вариант. Это только усложнит все...

T-34
() автор топика
Ответ на: комментарий от T-34

man 2 accept

>In order to be notified of incoming connections on a socket, you can use select(2) or poll(2). A readable event will be delivered when a new connection is attempted and you may then call accept() to get a socket for that connection. Alternatively, you can set the socket to deliver SIGIO when activity occurs on a socket; see socket(7) for details.

generatorglukoff ★★
()

может пойдут "административные" средства, вроде netcat - подвешиваешь его на дополнительном порту, а он редиректит все в основной?

Pi ★★★★★
()

Строго это должно делаться несколькими вызовами bind(), но

ERRORS
       EINVAL The socket is already bound to an address.

Так что к 1 дескриптору (как минимум в нынешнем linux) прицепить несколько адресов не 
получится. Есть некая непортабельщина setsockopt(s, SO_REUSEPORT, ...) (AIX?). Судя по 
описанию делает именно это.

sf ★★★
()
Ответ на: комментарий от sf

> Так что к 1 дескриптору (как минимум в нынешнем linux) прицепить несколько адресов не
получится. Есть некая непортабельщина setsockopt(s, SO_REUSEPORT, ...) (AIX?). Судя по
описанию делает именно это.

в FAQ сукины дети!
и прочтите наконец то Стивенса :-P

// wbr

klalafuda ★☆☆
()
Ответ на: комментарий от klalafuda

> в FAQ сукины дети!
по некликабельным не хожу

с SO_REUSEPORT действительно напутал - не для того даже на AIX :]

> и прочтите наконец то Стивенса :-P
В наиближайшем будущем.

sf ★★★
()
Ответ на: комментарий от irc_007_1

>> Нет, И это не нужно.

> Кому-то нужно, кому-то не нужно.

Ну тогда можно сказать, что нужна функция "void сделать_всё_заипись(void);" 8)

tailgunner ★★★★★
()
Ответ на: комментарий от tailgunner

> Ну тогда можно сказать, что нужна функция "void сделать_всё_заипись(void);" 8)

её уже сто лет как в обед

static inline void
dwim(void)
{
    __asm__("dwim");
}

правда, не все процессоры поддерживают эту инструкцию :(

// wbr

klalafuda ★☆☆
()

Сделай демона, который будет тупо транслировать со второго порта на первый.

Davidov ★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.