int main(int argc,char *argv[])
{
    char *filename;

    sdword size;
    ubyte *packet;

    if (argc < 2)
    {
        print("Usage: PktView filename.pkts [verbose]");
        return 0;
    }

    filename = argv[1];
    
    verbose = 0;
    if (argc >= 3)
    {
        if (stricmp(argv[2],"verbose") == 0)
        {
            verbose = 1;
        }
    }

    fp = fopen(filename,"rb");
    if (fp == NULL)
    {
        print("Error opening file %s",filename);
        return 0;
    }

    for (;;)
    {
        packet = GetNextPacket(&size);
        if (packet == NULL)
            break;
        if (size <= 0)
        {
            free(packet);
            break;
        }

        PrintPacketInfo(packet,size);
        free(packet);
    }

    fclose(fp);
    return 0;
}
void MainWindow::readDatagrams()
{
    packet p;

    int randomValue = qrand() % ((100 + 1) - 0) + 0;


    if (socket->hasPendingDatagrams())
    {

        if (randomValue >= bit_error_rate)
        {
            socket->readDatagram((char*)&p, sizeof(p));
            ProcessPacket(p);
        }
        else
        {
            socket->readDatagram((char*)&p, sizeof(p));
            AppendToLog("Dropping packet: ");
            PrintPacketInfo(p);

        }
    }
}
void MainWindow::ProcessPacket(packet p)
{
    PrintPacketInfo(p);
    WriteUDP(p);
}