Beispiel #1
0
        static void OnRegisterProtocol(C2SProtocol c2SProtocol, Socket socket)
        {
            RegisterProtocol registerProtocol = c2SProtocol as RegisterProtocol;

            if (registerProtocol == null)
            {
                return;
            }
            DbProviderFactory dbProviderFactory = DbProviderFactories.GetFactory("System.Data.SQLite.EF6");

            using (var conn = dbProviderFactory.CreateConnection())
            {
                conn.ConnectionString = ConfigurationManager.ConnectionStrings["sqlite"].ConnectionString;
                conn.Open();
                DbCommand command = conn.CreateCommand();

                // 判断是否已有该用户名
                command.CommandText = string.Format(@"SELECT * FROM account where user = ""{0}"" ", registerProtocol.Username);
                command.CommandType = CommandType.Text;
                command.Prepare();
                bool isExist = false;
                using (IDataReader reader = command.ExecuteReader())
                {
                    if (reader.Read())
                    {
                        isExist = true;
                    }
                }
                if (isExist)
                {
                    RegisterRetProtocol prc = new RegisterRetProtocol(socket)
                    {
                        Res = REGISTERTYPE.EXIST
                    };
                    prc.SendData();
                    return;
                }
                // 插入该用户名
                command.CommandText = string.Format(@"
                    INSERT INTO account (user, pwd) VALUES (""{0}"", ""{1}"")", registerProtocol.Username, registerProtocol.Password);
                Console.WriteLine(command.CommandText);
                //command.CommandText = @"select * from account";

                command.CommandType = CommandType.Text;
                command.Prepare();
                int col = command.ExecuteNonQuery();
                if (col > 0)
                {
                    RegisterRetProtocol prc = new RegisterRetProtocol(socket)
                    {
                        Res = REGISTERTYPE.SUCCESS
                    };
                    prc.SendData();
                }
            }
        }
Beispiel #2
0
        static void Transmit(PROTOCOLTYPE type, byte[] buffer, Socket socket)
        {
            C2SProtocol c2SProtocol;

            switch (type)
            {
            case PROTOCOLTYPE.USERPWD:
                c2SProtocol = new UserPwdProtocol(buffer);
                c2SProtocol.UnMarshal();
                OnUserPwdProtocol(c2SProtocol, socket);
                break;

            case PROTOCOLTYPE.REGISTER:
                c2SProtocol = new RegisterProtocol(buffer);
                c2SProtocol.UnMarshal();
                OnRegisterProtocol(c2SProtocol, socket);
                break;
            }
        }