LINUX.ORG.RU

Надо отправить одинаковые данные на несколько сокетов


0

0
Вроде бы где-то встречал упоминание, но ника не могу вспомнить
Поиск ничего не дал
наверное просто не знаю как сформулировать правильно запрос :(
вопрос собственно такой
Есть кусок данных, лежит в буфере
и его надо разослать на несколько сокетов
есть ли возможность сделать это одним вызовом?

> есть ли возможность сделать это одним вызовом?

да:

my_amazing_one_funccall(data, len, sockets, SOCKS_NUM);

void my_amazing_one_funccall(char *data, size_t len, int *sockets, int sn)
{
int i;

for(i = 0; i < sn; i++)
write(sockets[i], data, len); /* error checking was ommited... */
}
asgard
()
Ответ на: комментарий от asgard
> my_amazing_one_funccall(data, len, sockets, SOCKS_NUM);

khm... ну если опустить прилагательное "системным" то по всей видимости без проблем :) но AFAIU вопрос стоял все-таки о системном вызове. в противном случае, его и задавать то было бы как-то уж совсем глупо.

// wbr
klalafuda ★☆☆
()
Ответ на: комментарий от klalafuda
> khm... ну если опустить прилагательное "системным" то по всей видимости без проблем :) но AFAIU вопрос стоял все-таки о системном вызове. в противном случае, его и задавать то было бы как-то уж совсем глупо.

вообще-то это был сарказм в сторону очень расплывчатого описания.

btw: а сискол никто не мешает добавить. а далее распространять своё приложение вместе с патчем к ядру. =)

asgard
()
Ответ на: комментарий от asgard
> btw: а сискол никто не мешает добавить. а далее распространять своё приложение вместе с патчем к ядру. =)

сарказм крепчает:)

dilmah ★★★★★
()
Ответ на: комментарий от klalafuda
именно
речь идет о системном вызове
наверняка что то подобное есть
такой вызов позволит избежать многократного копирования данных из user в system
подобное или близко к этому используется при передачи данных из одного файла в другой
sendfile(2), splice(2), tee(2)
before
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.