Example #1
0
 public RegisterData ConnectAsRegister(string nickname, string password)
 {
     try
     {
         LoginOrRegisterRequest request = new LoginOrRegisterRequest(0, password, ClientVersion);
         request.IsRegister = true;
         request.Nickname   = nickname;
         IPAddress[] addr = Dns.GetHostAddresses(ServerAddress);
         Socket      sock = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
         sock.Connect(addr, ServerPort);
         sock.SendOnce(request);
         RegisterCallback rcb = sock.ReceiveOnce <RegisterCallback>(512);
         try
         {
             sock.Close();
             sock.Dispose();
         }
         catch { }
         if (rcb.Success)
         {
             return(new RegisterData(RegisterResult.Success, rcb.Username));
         }
         else
         {
             return(new RegisterData((RegisterResult)rcb.Username, -1));
         }
     }
     catch
     {
         return(new RegisterData(RegisterResult.ConnectionError, -1));
     }
 }
Example #2
0
 public Task <IApiResponse <LoginOrRegisterResponse> > LoginOrRegister(LoginOrRegisterRequest request)
 => conn.SendAsync <LoginOrRegisterRequest, LoginOrRegisterResponse>(
     method: HttpMethod.Post,
     requestUri: "api/Account/LoginOrRegister",
     request: request,
     cancellationToken: default,
     responseContentMaybeNull: false);
Example #3
0
 public LoginResult ConnectAsLogin(int userName, string password)
 {
     try
     {
         LoginOrRegisterRequest request = new LoginOrRegisterRequest(userName, password, ClientVersion);
         request.IsLogin = true;
         IPAddress[] addr = Dns.GetHostAddresses(ServerAddress);
         ClientSocket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
         ClientSocket.Connect(addr, ServerPort);
         ClientSocket.SendOnce(request);
         LoginCallback lcb = ClientSocket.ReceiveOnce <LoginCallback>(512);
         if (lcb.Success)
         {
             Thread clientLoop = new Thread(ClientLoop);
             clientLoop.IsBackground = true;
             clientLoop.Start();
         }
         else
         {
             try
             {
                 ClientSocket.Close();
                 ClientSocket.Dispose();
             }
             catch { }
         }
         return(lcb.Code);
     }
     catch (Exception e)
     {
         try
         {
             ClientSocket?.Close();
             ClientSocket?.Dispose();
         }
         catch { }
         return(LoginResult.ConnectionError);
     }
 }