示例#1
0
    #numero_totale_pkt = 0
    bind_layers(UDP, RTP)
    try:
        with PcapReader(pcap_path) as pcap_reader:
            for index, pkt in enumerate(pcap_reader):
                if IP in pkt and RTP in pkt:
                    #numero_totale_pkt = index
                    try:
                        num_canali, quali = queue_stat.get(block=False)
                    except queue.Empty:
                        pass
                    if start_time == 0:  # per avere uno start time più fedele possibile
                        start_time = time.time()
                    send = operatore.set_pkt(pkt)
                    timer.nsleep(
                        timer.delay_calculator(pkt.time, pkt_start_time,
                                               start_time) * 0.85
                    )  # in modo da svegliarsi un 15% prima e poter eseguire più invii senza problemi
                    invio_canali(num_porte, queue_list, num_canali, quali,
                                 send, index)
    except KeyboardInterrupt:
        pass

    esci = True
    for i in queue_list:
        i.put((None, -1))
        time.sleep(1)
    #queue_gop.put(None) # da usare
    #image_process.join() # da usare
    #print(arr)
    #print('Numero di elementi non inviati ' + str(len(arr)) + ' su ' + str(numero_totale_pkt) + ' pacchetti')
    print("--- %s seconds ---" % (time.time() - start))