Beispiel #1
0
        internal bool Update(string ip, byte pc)
        {
            lock (servers)
            {
                for (int i = 0; i < servers.Count; ++i)
                {
                    if (servers[i].IpAddress == ip)
                    {
                        servers[i].Count         = pc;
                        servers[i].LastHeartbeat = Fishtank.UnixTime();
                        return(true);
                    }
                }
            }

            error = "No server with ip address: \"" + ip + "\" exists in the registry";
            return(false);
        }
Beispiel #2
0
        static void Main(string[] args)
        {
            try
            {
                var fishtank = new Fishtank();

                // register CTRL-C handler
                Console.CancelKeyPress += new ConsoleCancelEventHandler(Handler);

                Console.WriteLine("[ready on tcp:28860 udp:28860]");

                while (running)
                {
                    fishtank.Exec();
                }

                fishtank.Close();
                Console.Write("\nexiting...");

                return;
            }
            catch (SocketException e)
            {
                if (e.Message.Contains("already in use"))
                {
                    Console.WriteLine("The kernel is complaining about \"Socket already in use\".\nThis just means to wait a bit, then try again");
                }
                else
                {
                    Console.WriteLine(e.Message);
                }

                Environment.ExitCode = 1;
            }
            catch (Exception e)
            {
                Console.WriteLine(e.Message);
                Console.WriteLine(e.StackTrace);

                Main(args);
            }
        }