private static void TestFrames()
        {
#if TRACE_LOG
            FileName = "Receiver";
            LogHelper.WriteToFile("Starting", "Program", FileName, true);
            FileName = "Sender";
            LogHelper.WriteToFile("Starting", "Program", FileName, true);
#endif
            FrameSender sender  = new FrameSender();
            ulong       counter = 0;
            while (true)
            {
                FileName = "Sender";
#if TRACE_LOG
                LogHelper.WriteToFile("Prepare to sending packet.", "Program", FileName, true);
#endif
                List <Packet> sendPackets = new List <Packet>();
                while (sendPackets.Count == 0) //for (int i = 0; i < 1; i++)
                {
                    //Packet p = GetPacketB();
                    Packet p = RandomPacket();
                    if (sender.ProcessPacket(p))
                    {
                        sendPackets.Add(p);
                    }
                }

                byte[] data = sender.Send();

                FileName = "Receiver";
                FrameReceiver receiver = new FrameReceiver();
#if TRACE_LOG
                LogHelper.WriteToFile("Prepare to receive packet.", "Program", FileName, true);
#endif
                List <IPacket> readPackets = receiver.Receive(data);
                Debug.Assert(sendPackets.Count == readPackets.Count);
                for (int i = 0; i < sendPackets.Count; i++)
                {
                    IPacket itemA = sendPackets[i];
                    IPacket itemB = readPackets[i];
                    Debug.Assert(itemA.Equals(itemB));
                }
                Console.WriteLine(counter);
                counter++;
            }
        }