Как я могу присоединиться к группе потоков многопериодного mpeg с адресом udp://@224.1.50.15:1234
? Я хочу управлять только для того, чтобы установить соединение с потоковым сервером, чтобы сервер узнал о том, что меня интересует эта группа многоадресной рассылки, чтобы заставить сервер отправлять мне потоковые пакеты в течение определенного периода времени.C++ Как я могу присоединиться к потоку многоадресной передачи?
Для примера: Я не получаю никаких пакетов из этой группы многоадресной передачи, пока не установит соединение с группой с VLC Player. Даже после того, как я закрыл VLC Player, я продолжаю получать пакеты из группы в течение короткого периода времени. То, что я пытаюсь сделать, - это получать пакеты без помощи VLC Player или любого другого стороннего приложения.
Как я могу связаться с этой группой для указанной выше цели. Если это возможно?
P.S: У меня установлено 4 сетевых интерфейса.
Спасибо!
Рекомендация Zaboj Campula в его ответе на этой странице; я изменил код, как показано ниже. Который дает мне ошибку 10093.
struct ip_mreq {
struct in_addr imr_multiaddr; /* IP multicast address of group */
struct in_addr imr_interface; /* local IP address of interface */
};
SOCKET s;
SOCKADDR_IN localif;
struct ip_mreq mreq;
s = socket(AF_INET, SOCK_DGRAM, IPPROTO_UDP);
localif.sin_family = AF_INET;
localif.sin_port = htons(1234);
localif.sin_addr.s_addr = INADDR_ANY;
bind(s, (SOCKADDR *)&localif, sizeof(localif));
mreq.imr_interface.s_addr = INADDR_ANY; //Writing here my local ip didn't change the result.
mreq.imr_multiaddr.s_addr = inet_addr("224.1.50.15");
int rc = NO_ERROR;
s = socket(AF_INET, SOCK_DGRAM, IPPROTO_UDP);
// Join the group
rc = setsockopt(s, IPPROTO_IP, IP_ADD_MEMBERSHIP, (char *)&mreq, sizeof(mreq));
if (rc == SOCKET_ERROR)
{
printf("JoinMulticastGroup: setsockopt failed with error code %d\n", WSAGetLastError());
}
else
{
printf("Joined group: ");
//PrintAddress(group->ai_addr, group->ai_addrlen);
printf("\n");
}
Пока кто-то будет писать ответ на мою тему, я решил использовать 'libvlc_media_new_location' функцию от' libvlc.lib'. На мой взгляд, это слишком много для этой цели. – swartkatt