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)); } }
public Task <IApiResponse <LoginOrRegisterResponse> > LoginOrRegister(LoginOrRegisterRequest request) => conn.SendAsync <LoginOrRegisterRequest, LoginOrRegisterResponse>( method: HttpMethod.Post, requestUri: "api/Account/LoginOrRegister", request: request, cancellationToken: default, responseContentMaybeNull: false);
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); } }