Minoru
24.01.2012 19:07 antaeus
Пишу UDP-сервер. Он биндит пару сокетов (вообще хз сколько, это от результата getaddrinfo зависит) и висит на них poll'ом. При получении сообщения он запоминает адресс клиента в структуре sockaddr_storage. Время от времени ему нужно что-то отправлять клиентам, и тут всплывает проблема: клиенты могут быть подключены и по IPv6, и по IPv4, а следовательно, данные тоже нужно с помощью разных соединений отправлять. Как разобраться, кому с какого сокета слать сообщения?
Отправлять одно и то же сообщение с обоих сокетов — не решение, ибо оверхед. Подумываю об отдельном списочке, в котором для каждого сокета будет хранится его family; при отправке сообщения можно будет пробегаться по списку и решать, какой сокет юзать. Есть ещё идеи?