Unicast (http) para Multicast (UDP)



  • Boa tarde.

    Estou fazendo um projeto onde tenho que transformar uma requisição HTTP em UDP. Como enviar algo em UDP já consegui fazer, mas estou com um pequeno problema em buscar o que vem em HTTP em tempo real (canal de TV). Em JAVA já fiz algo parecido, e era mais ou menos assim, conectava à url e com um laço "while (true)" eu ia pegando o que tava naquele momento no HTTP. Isso que preciso fazer em Qt Creator.

    Mais informações:

    1- A URL está neste formato: http://192.168.202.226:8001/1:0:1:15:3:1:B54AB7A:0:0:0:
    2 - Só para salientar, é um "live streaming" de um canal de TV, não é um arquivo "estático".

    Se alguém tiver uma luz, fico grato.

    Obrigado.



  • Em Qt você não fica em loop ( while(true) ) para ler um socket, seja ele UDP ou TCP.

    QUdpSocket ou QTcpSocket trabalham através dos sinais/slots. E o Qt cria um loop para fazer este mecanismo funcionar.

    Acredito que o seu programa tenha interface (GUI). Logo o seu main deve ser algo assim:

    int main(int argc, char *argv[])
    {
        QApplication app(argc, argv);
        Client client;
        client.show();
        return app.exec();
    }
    

    E na sua classe, você assina o sinal para receber os dados.

    Dê uma olhada neste exemplo. Apesar de usar o QTcpSocket, trocar para o QUdpSocket não deve ser problema.



  • @TioRoy Obrigado pela resposta. Acabei fazendo com a biblioteca ffmpeg, pois consegui buscar os dados e jogar pra fora em multicast mas fica travando, estou errando em algum lugar.



Looks like your connection to Qt Forum was lost, please wait while we try to reconnect.