public static void addListener(NetworkClockEndpointInfo endPoint)
 {
     logMessage(new MessageEvent("Adding network " + endPoint.HostType.ToString() + " clock listener at hostname: " + endPoint.HostName, 0, MessageEvent.MessageTypes.Routine, MessageEvent.MessageCategories.SoftwareClock));
     if (!clients.ContainsKey(endPoint.HostName)) {
         UdpClient client = new UdpClient(endPoint.HostName, endPoint.getPort());
         clients.Add(endPoint.HostName, client);
     }
     logMessage(new MessageEvent("...done", 0, MessageEvent.MessageTypes.Routine, MessageEvent.MessageCategories.SoftwareClock));
 }
 public static void addListener(NetworkClockEndpointInfo endPoint)
 {
     logMessage(new MessageEvent("Adding network " + endPoint.HostType.ToString() + " clock listener at hostname: " + endPoint.HostName, 0, MessageEvent.MessageTypes.Routine, MessageEvent.MessageCategories.SoftwareClock));
     if (!clients.ContainsKey(endPoint.HostName))
     {
         UdpClient client = new UdpClient(endPoint.HostName, endPoint.getPort());
         clients.Add(endPoint.HostName, client);
     }
     logMessage(new MessageEvent("...done", 0, MessageEvent.MessageTypes.Routine, MessageEvent.MessageCategories.SoftwareClock));
 }
Beispiel #3
0
        /// <summary>
        /// Returns true if successful, false otherwise.
        /// </summary>
        /// <param name="listenerType"></param>
        /// <returns></returns>
        public static bool startListener(NetworkClockEndpointInfo.HostTypes listenerType)
        {
            lock (staticLockObj)
            {
                staticLogMessage(new MessageEvent("Starting network clock listener...", 0, MessageEvent.MessageTypes.Routine, MessageEvent.MessageCategories.SoftwareClock));
                myListenerType = listenerType;

                // Check if a listener thread is running already.
                if (listenerThread != null)
                {
                    throw new SoftwareClockProviderException("Attempted to start listener thread when already started.");
                }


                // Open a UDP socket
                staticLogMessage(new MessageEvent("Opening UDP input socket for network clock.", 1, MessageEvent.MessageTypes.Log, MessageEvent.MessageCategories.Networking));
                try
                {
                    udpClient = new UdpClient(NetworkClockEndpointInfo.getListenerPort(myListenerType));
                }
                catch (System.Net.Sockets.SocketException e)
                {
                    staticLogMessage(new MessageEvent("Unable to open input socket for network clock due to socket exception: " + e.Message,
                                                      0, MessageEvent.MessageTypes.Error, MessageEvent.MessageCategories.Networking));
                    udpClient = null;
                    return(false);
                }



                listenerThread = new Thread(listenerThreadProc);
                listenerThread.Start();
                providers = new Dictionary <uint, NetworkClockProvider>();
            }
            return(true);
        }
        /// <summary>
        /// Returns true if successful, false otherwise.
        /// </summary>
        /// <param name="listenerType"></param>
        /// <returns></returns>
        public static bool startListener(NetworkClockEndpointInfo.HostTypes listenerType)
        {
            lock (staticLockObj)
            {
                staticLogMessage(new MessageEvent("Starting network clock listener...", 0, MessageEvent.MessageTypes.Routine, MessageEvent.MessageCategories.SoftwareClock));
                myListenerType = listenerType;

                // Check if a listener thread is running already.
                if (listenerThread != null)
                {
                    throw new SoftwareClockProviderException("Attempted to start listener thread when already started.");
                }

                // Open a UDP socket
                staticLogMessage(new MessageEvent("Opening UDP input socket for network clock.", 1, MessageEvent.MessageTypes.Log, MessageEvent.MessageCategories.Networking));
                try
                {
                    udpClient = new UdpClient(NetworkClockEndpointInfo.getListenerPort(myListenerType));
                }
                catch (System.Net.Sockets.SocketException e)
                {
                    staticLogMessage(new MessageEvent("Unable to open input socket for network clock due to socket exception: " + e.Message,
                                                        0, MessageEvent.MessageTypes.Error, MessageEvent.MessageCategories.Networking));
                    udpClient = null;
                    return false;
                }

                listenerThread = new Thread(listenerThreadProc);
                listenerThread.Start();
                providers = new Dictionary<uint, NetworkClockProvider>();

            }
            return true;
        }