UDP-клиент многоадресной рассылки через ipv6

Если обратная косая черта означает «избежать следующего символа» (будь то фигурная скобка, еще одна обратная косая черта или что-то еще, кроме конца строки), тогда вы можете «пропустить» следующий символ следующим образом:

sed -r 's/_\{((\\.|[^}\\])+)\}/*\1*/g

Если обратная косая черта имеет только особое значение перед фигурной скобкой, вам необходимо " пропускать "первый символ без обратной косой черты после каждого выполнения 1 или более обратных косых черт:

sed -r 's/_\{((\\+[^\]|[^}\\])+)\}/*\1*/g'
2
23.05.2017, 15:40
1 ответ

Действительно, я не мог присоединиться к группе многоадресной рассылки. Примеров многоадресной рассылки ipv6 довольно мало, вот протестированный код:

struct addrinfo hint {}, *res;
hint.ai_flags = AI_PASSIVE;
hint.ai_family = AF_INET6;
hint.ai_socktype = SOCK_DGRAM;
getaddrinfo( server._rep.c_str(), std::to_string( port ).c_str(), &hint, &res )
mreq.ipv6mr_multiaddr = reinterpret_cast<  sockaddr_in6* >( res->ai_addr )->sin6_addr;
mreq.ipv6mr_interface if_nametoindex( iface.c_str();
setsockopt( _fd, IPPROTO_IPV6, IPV6_ADD_MEMBERSHIP, (void*)mreq, sizeof( mreq ) )

PS: Некоторые полезные ресурсы по этой теме:

http://www.iitk.ac.in/LDP/HOWTO/Multicast-HOWTO.html# toc6

http://docs.oracle.com/cd/E19253-01/817-4415/sockets-149/index.html

0
27.01.2020, 22:42

Теги

Похожие вопросы