public bool reachedTime(UInt32 elaspedTime_ms, int p)
        {
            NetworkClockDatagram ndgram = new NetworkClockDatagram(elaspedTime_ms, clockID, ndCount);

            ndCount++;
            byte [] buffer = ndgram.toByteStream();
            Dictionary <UdpClient, IAsyncResult> results = new Dictionary <UdpClient, IAsyncResult>();

            foreach (UdpClient client in clients.Values)
            {
                results.Add(client, client.BeginSend(buffer, NetworkClockDatagram.datagramByteLength, null, null));
#if DEBUG
                logMessage(new MessageEvent("Began sending datagram to client " + client.ToString(), 2, MessageEvent.MessageTypes.Debug, MessageEvent.MessageCategories.Networking));
#endif
            }

            foreach (UdpClient client in results.Keys)
            {
                client.EndSend(results[client]);
#if DEBUG
                logMessage(new MessageEvent("Finished sending datagram to client " + client.ToString(), 2, MessageEvent.MessageTypes.Debug, MessageEvent.MessageCategories.Networking));
#endif
            }

            if (maxTime > 0 && elaspedTime_ms > maxTime)
            {
                return(false);
            }

            return(true);
        }
 public void toByteStreamTest()
 {
     Random rnd = new Random();
     for (int i = 0; i < 30; i++)
     {
         NetworkClockDatagram testGram = new NetworkClockDatagram((uint)rnd.Next(), (uint)rnd.Next(), (uint)rnd.Next());
         byte []bytes = testGram.toByteStream();
         NetworkClockDatagram resultGram = new NetworkClockDatagram(bytes);
         Assert.AreEqual(testGram, resultGram);
         //Assert.AreEqual(testGram.ElaspedTime, resultGram.ElaspedTime);
         //Assert.AreEqual(testGram.ClockID, resultGram.ClockID);
     }
 }
        public bool reachedTime(UInt32 elaspedTime_ms, int p)
        {
            NetworkClockDatagram ndgram = new NetworkClockDatagram(elaspedTime_ms, clockID, ndCount);
            ndCount++;
            byte [] buffer = ndgram.toByteStream();
            Dictionary<UdpClient, IAsyncResult> results = new Dictionary<UdpClient,IAsyncResult>();
            foreach (UdpClient client in clients.Values)
            {
                results.Add(client, client.BeginSend(buffer, NetworkClockDatagram.datagramByteLength, null, null));
            #if DEBUG
                logMessage(new MessageEvent("Began sending datagram to client " + client.ToString(), 2, MessageEvent.MessageTypes.Debug, MessageEvent.MessageCategories.Networking));
            #endif
            }

            foreach (UdpClient client in results.Keys)
            {
                client.EndSend(results[client]);
            #if DEBUG
                logMessage(new MessageEvent("Finished sending datagram to client " + client.ToString(), 2, MessageEvent.MessageTypes.Debug, MessageEvent.MessageCategories.Networking));
            #endif
            }

            if (maxTime > 0 && elaspedTime_ms > maxTime)
                return false;

            return true;
        }