示例#1
0
        static public bool Register(string usr, string passwd, NetworkStream stream)
        {
            User user     = new User(usr, passwd);
            var  jsonfied = JsonSerializer.Serialize(user);
            var  byData   = Encoding.UTF8.GetBytes(jsonfied);

            var bytes = HeaderParser.Encode(Header.REG, Convert.ToUInt32(byData.Length));

            stream.Write(bytes, 0, bytes.Length);
            stream.Write(byData, 0, byData.Length);

            var buffer      = new byte[3];
            int messageSize = stream.Read(buffer, 0, 3);
            var head        = HeaderParser.Decode(buffer);
            var buffer2     = new byte[head.Item2];

            stream.Read(buffer2, 0, buffer2.Length);
            string receive = Encoding.ASCII.GetString(buffer2);

            if (head.Item1 == Header.ACK)
            {
                return(true);
            }
            else
            {
                return(false);
            }
        }
示例#2
0
        static public bool SendPoints(NetworkStream stream, int points)
        {
            string msg    = "{\"score\":" + points.ToString() + "}";
            var    byData = Encoding.UTF8.GetBytes(msg);
            var    bytes  = HeaderParser.Encode(Header.END, Convert.ToUInt32(byData.Length));

            stream.Write(bytes, 0, bytes.Length);
            try
            {
                stream.Write(byData, 0, byData.Length);
            }
            catch (System.IO.IOException e) { }

            var buffer      = new byte[3];
            int messageSize = stream.Read(buffer, 0, 3);
            var head        = HeaderParser.Decode(buffer);
            var buffer2     = new byte[head.Item2];

            stream.Read(buffer2, 0, buffer2.Length);
            string receive = Encoding.UTF8.GetString(buffer2);
            //string[] jsonified = new string[9];
            PersonalStats personalStats = JsonSerializer.Deserialize <PersonalStats>(receive);

            if (head.Item1 == Header.ACK)
            {
                return(true);
            }
            else
            {
                return(false);
            }
        }
示例#3
0
        static public GlobalStats GetRanking(NetworkStream stream, string category)
        {
            string msg    = "{\"msg\":\"GimmeStats\",\"category\":\"" + category + "\"}";
            var    byData = Encoding.UTF8.GetBytes(msg);
            var    bytes  = HeaderParser.Encode(Header.STR, Convert.ToUInt32(byData.Length));

            stream.Write(bytes, 0, bytes.Length);
            try
            {
                stream.Write(byData, 0, byData.Length);
            }
            catch (System.IO.IOException e) { }

            var buffer      = new byte[3];
            int messageSize = stream.Read(buffer, 0, 3);
            var head        = HeaderParser.Decode(buffer);
            var buffer2     = new byte[head.Item2];

            stream.Read(buffer2, 0, buffer2.Length);
            string receive = Encoding.UTF8.GetString(buffer2);
            //string[] jsonified = new string[9];
            GlobalStats globalStats = JsonSerializer.Deserialize <GlobalStats>(receive);

            if (head.Item1 == Header.STA)
            {
                return(globalStats);
            }
            else
            {
                return(new GlobalStats());
            }
        }
示例#4
0
        static public Question GetQuestion(NetworkStream stream, string category, int type)
        {
            string msg    = "{\"category\":\"" + category + "\"}";
            var    byData = Encoding.UTF8.GetBytes(msg);

            if (type == 0)
            {
                var bytes = HeaderParser.Encode(Header.QUI, Convert.ToUInt32(byData.Length));
                stream.Write(bytes, 0, bytes.Length);
            }
            else if (type == 1)
            {
                var bytes = HeaderParser.Encode(Header.NXT, Convert.ToUInt32(byData.Length));
                stream.Write(bytes, 0, bytes.Length);
            }
            try
            {
                stream.Write(byData, 0, byData.Length);
            }
            catch (System.IO.IOException e) { }

            var buffer      = new byte[3];
            int messageSize = stream.Read(buffer, 0, 3);
            var head        = HeaderParser.Decode(buffer);
            var buffer2     = new byte[head.Item2];

            stream.Read(buffer2, 0, buffer2.Length);
            string receive = Encoding.UTF8.GetString(buffer2);
            //string[] jsonified = new string[9];
            Question question = JsonSerializer.Deserialize <Question>(receive);

            return(question);
        }
示例#5
0
        static public Categories GetCategories(NetworkStream stream)
        {
            string msg    = "{\"msg\":\"GimmeList\"}";
            var    byData = Encoding.UTF8.GetBytes(msg);
            var    bytes  = HeaderParser.Encode(Header.ALI, Convert.ToUInt32(byData.Length));

            stream.Write(bytes, 0, bytes.Length);
            try
            {
                stream.Write(byData, 0, byData.Length);
            }
            catch (System.IO.IOException e) { }

            var buffer      = new byte[3];
            int messageSize = stream.Read(buffer, 0, 3);
            var head        = HeaderParser.Decode(buffer);
            var buffer2     = new byte[head.Item2];

            stream.Read(buffer2, 0, buffer2.Length);
            string receive = Encoding.UTF8.GetString(buffer2);
            //string[] jsonified = new string[9];
            Categories categories = JsonSerializer.Deserialize <Categories>(receive);

            if (head.Item1 == Header.ERR)
            {
                return(categories);
            }
            else
            {
                return(categories);
            }
        }