Комментарии 4
а connect на мультикаст-адрес что выдает?
по идее, приконнекченный UDP-сокет будет отсылать(send, не sendto) и принимать(recv) только на/с того адреса
конечно, этот вариант не прокатит в случае слушания нескольких групп одним сокетом
по идее, приконнекченный UDP-сокет будет отсылать(send, не sendto) и принимать(recv) только на/с того адреса
конечно, этот вариант не прокатит в случае слушания нескольких групп одним сокетом
connet для UDP это не true :) В принципе для точка-точка прокатит.
но только для получателя.
Коннкет для удп можно делать несколько раз, и он лишь определяет, куда слать пакеты. Например, через writev неполучится послать на конкретный адрес, потому что в вызове writev нет destination-аддреса. Решить это можно при помощи connect. Правда, это будет, не потокобезопасно. Как-то так. И суть в том, что writev нужно чтобы избежать лишнего копирования при конструировании фреймов. Но если мы используем conect - то это системный вызов. Поэтому не факт, что связкой writev+conenct удастся сэкономить время: копирования мы избежали - но добавился вызов системный. По этой причине, если connеct надо делать часто, то лучше завести индивидуальный сокет. А если 1 раз на страте сделали коннкет и потом вызывать writev - то это хороший вариант.
Зарегистрируйтесь на Хабре, чтобы оставить комментарий
Особенности работы с Multicast