示例#1
0
        public static ServerStat Parse
        (
            [NotNull] ServerResponse response
        )
        {
            ServerStat result = new ServerStat
            {
                TotalCommandCount = response.RequireInt32(),
                ClientCount       = response.RequireInt32(),
                Unknown           = response.RequireInt32()
            };

            List <ClientInfo> clients = new List <ClientInfo>();

            while (true)
            {
                string number    = response.GetAnsiString();
                string ipAddress = response.GetAnsiString();
                if (string.IsNullOrEmpty(number) ||
                    string.IsNullOrEmpty(ipAddress))
                {
                    break;
                }

                ClientInfo client = new ClientInfo
                {
                    Number        = number,
                    IPAddress     = ipAddress,
                    Port          = response.RequireAnsiString(),
                    Name          = response.RequireAnsiString(),
                    ID            = response.RequireAnsiString(),
                    Workstation   = response.RequireAnsiString(),
                    Registered    = response.RequireAnsiString(),
                    Acknowledged  = response.RequireAnsiString(),
                    LastCommand   = response.RequireAnsiString(),
                    CommandNumber = response.RequireAnsiString()
                };
                clients.Add(client);
            }
            result.RunningClients = clients.ToArray();

            return(result);
        }