예제 #1
0
        public void ServerToClientSetDisconnectReason(ulong netId, ConnectStatus status)
        {
            var writer = new FastBufferWriter(sizeof(ConnectStatus), Allocator.Temp);

            writer.WriteValueSafe(status);
            NetworkManager.Singleton.CustomMessagingManager.SendNamedMessage("ServerToClientSetDisconnectReason", netId, writer);
        }
예제 #2
0
        private void ConnectionUpdate(ConnectStatus conStat)
        {
            if (InvokeRequired)
            {
                Invoke(new Action <ConnectStatus>(ConnectionUpdate), conStat);
                return;
            }

            switch (conStat)
            {
            case ConnectStatus.Disconnected:
                lblConnectStatus.Text      = "SSH: DISCONNECTED!";
                lblConnectStatus.ForeColor = Color.Black;
                lblConnectStatus.Font      = new Font(Label.DefaultFont, FontStyle.Regular);
                break;

            case ConnectStatus.Connected:
                lblConnectStatus.Text      = "SSH: Connected!";
                lblConnectStatus.ForeColor = Color.Green;
                lblConnectStatus.Font      = new Font(Label.DefaultFont, FontStyle.Regular);
                break;

            case ConnectStatus.Error:
                lblConnectStatus.Text      = "SSH: ERROR DURING SESSION!";
                lblConnectStatus.ForeColor = Color.Red;
                lblConnectStatus.Font      = new Font(Label.DefaultFont, FontStyle.Bold);
                break;

            case ConnectStatus.Connecting:
                lblConnectStatus.Text      = "SSH: Connecting...";
                lblConnectStatus.ForeColor = Color.Black;
                lblConnectStatus.Font      = new Font(Label.DefaultFont, FontStyle.Bold);
                break;
            }
        }
예제 #3
0
    //////////////////////////////////////////////////////////////////////////
    #region Thread For Connect

    public void ConnectThread()
    {
        m_connectStatus = ConnectStatus.CONNECTING;
        while (true)
        {
            m_Socket.close();

            Console.WriteLine("connect:" + m_strServerAddr);
            m_strConnectResult = m_Socket.connect(m_strServerAddr, m_nServerPort);
            if (m_strConnectResult.Length == 0 && m_Socket.IsValid)
            {
                m_SocketInputStream  = new SocketInputStream(m_Socket);
                m_SocketOutputStream = new SocketOutputStream(m_Socket);
                m_connectStatus      = ConnectStatus.CONNECTED;
                break;
            }
            else
            {
                LogModule.WarningLog(m_strConnectResult);
            }
            m_Socket.close();

            Thread.Sleep(m_nConnectSleep);
            m_connectStatus = ConnectStatus.DISCONNECTED;
            break;
        }

        m_bConnectFinish = true;
    }
예제 #4
0
        /// <summary>
        ///   连接dsp网关
        /// </summary>
        /// <returns></returns>
        public static bool Connect()
        {
            HttpClient          client   = new HttpClient();
            HttpResponseMessage response = client.GetAsync(ConfigurationManager.AppSettings["UpmsUrl"].Trim()
                                                           + "?name=" + ConfigurationManager.AppSettings["UserCode"].Trim()
                                                           + "&password="******"UserPwd"].Trim()
                                                           + "&mac=00-00-00-00-00-00&ip=&applicationmark=03").Result;

            if (response == null)
            {
                throw new Exception("Upms登陆失败!");
            }
            string    JsonData = response.Content.ReadAsStringAsync().Result;
            AuthToken auth     = JsonConvert.DeserializeObject <AuthToken>(JsonData);

            GatewayAdapter.Instance.SetToken(auth.result.Token);
            GatewayAdapter.Instance.Init();
            GatewayAdapter.Instance.Start();
            ConnectStatus status = GatewayAdapter.Instance.GetConnectStatus();

            if (status == ConnectStatus.ConnectSuccess)
            {
                return(true);
            }
            else
            {
                throw new Exception("无法连接到DSP/MDP服务器.");
            }
        }
예제 #5
0
 /// <summary>
 /// OnClose event handler
 /// </summary>
 /// <param name="sender"></param>
 /// <param name="e"></param>
 private static void WebSocket_OnClose(object sender, CloseEventArgs e)
 {
     ConnectStatus.SetText("Disconnected");
     ServerConsole.Disable();
     PlayerCounter.Reset();
     Update.StopThreads();
 }
예제 #6
0
 /// <summary>
 /// 连接错误处理
 /// </summary>
 /// <param name="error"></param>
 /// <param name="errorLog"></param>
 public void ProcessConectionError(Error error, string errorLog)
 {
     currentStatus = ConnectStatus.CONNECT_FAIL;
     lastError     = error;
     Debug.LogWarning(errorLog);
     Close();
     beginConnectElapsed = 0f;
     if (_retryNum > 0)
     {
         _retryNum--;
         SetReConnectStatus();
     }
     else
     {
         if (_reconnectNum > 0)
         {
             _reconnectNum--;
             StartCoroutine(OnWaitForReconnect());
         }
         else
         {
             OnDisconnect();
         }
     }
 }
예제 #7
0
 /// <summary>
 /// 设置重连状态
 /// </summary>
 public void SetReConnectStatus()
 {
     if (currentStatus != ConnectStatus.CONNECTING && currentStatus != ConnectStatus.READY_TO_RECONNECT && currentStatus != ConnectStatus.RECONNECT)
     {
         currentStatus = ConnectStatus.RECONNECT;
     }
 }
예제 #8
0
        private Image GetSignalIntensityImage(ConnectStatus connectStatus)
        {
            Image rtn = null;

            switch (connectStatus)
            {
            case ConnectStatus.Strong:
                rtn = Properties.Resources.wireless_blue;
                break;

            case ConnectStatus.Good:
                rtn = Properties.Resources.wireless_green;
                break;

            case ConnectStatus.Medium:
                rtn = Properties.Resources.wireless_yellow;
                break;

            case ConnectStatus.Broken:
                rtn = Properties.Resources.wireless_red;
                break;
            }

            return(rtn);
        }
예제 #9
0
        internal Network()
        {
            try
            {
                tcpClient = new TcpClient("localhost", PORT);
                serverStatus = ConnectStatus.Online;
                networkStream = tcpClient.GetStream();

                byte[] message = new byte[4096];

                while (true)
                {
                    try
                    {
                        ReadStream(networkStream, message);
                    }
                    catch (Exception e)
                    {
                        Console.WriteLine("Erreur lors de la réception d'un paquet ... Erreur : " + e.Message);
                    }
                }
            }
            catch
            {
                serverStatus = ConnectStatus.Offline;
            }
        }
예제 #10
0
        //设备移除通知
        private void FrmMain_OnSpecifiedDeviceRemoved(object sender, EventArgs e)
        {
            devConnectStatus = ConnectStatus.Disconnected;

            if (this.UseSimplifiedChinese.Checked)
            {
                this.notifier.ShowBalloonTip(1, "交互式电子白板", "设备连接断开!", ToolTipIcon.Error);
                this.notifier.Text = "服务停止运行!";
                this.notifier.Icon = new Icon(asm.GetManifestResourceStream("GK.WhiteboardServer.Image.grayNotify.ico"));
            }
            else if (this.UseTraditionalChinese.Checked)
            {
                this.notifier.ShowBalloonTip(1, "交互式電子白板", "設備連接斷開!", ToolTipIcon.Error);
                this.notifier.Text = "服務停止运行!";
                this.notifier.Icon = new Icon(asm.GetManifestResourceStream("GK.WhiteboardServer.Image.grayNotify.ico"));
            }
            else if (this.UseEnglish.Checked)
            {
                this.notifier.ShowBalloonTip(1, "Interactive whiteboard", "Device is disconnected!", ToolTipIcon.Error);
                this.notifier.Text = "Service stops running!";
                this.notifier.Icon = new Icon(asm.GetManifestResourceStream("GK.WhiteboardServer.Image.grayNotify.ico"));
            }
            else if (this.UseGerman.Checked)
            {
                this.notifier.ShowBalloonTip(1, "Interactive Whiteboard", "Gerät ist nicht angeschlossen!", ToolTipIcon.Error);
                this.notifier.Text = "Gerät ist getrennt!";
                this.notifier.Icon = new Icon(asm.GetManifestResourceStream("GK.WhiteboardServer.Image.grayNotify.ico"));
            }
        }
예제 #11
0
 void ConnectLost()
 {
     m_connectStatus = ConnectStatus.DISCONNECTED;
     if (null != m_delConnectLost)
     {
         m_delConnectLost();
     }
 }
예제 #12
0
        public static SNRESULT GetConnectStatus(int target, out ConnectStatus status, out string usage)
        {
            SNRESULT snresult = Is32Bit() ? GetConnectStatusX86(target, out uint num, out IntPtr ptr) : GetConnectStatusX64(target, out num, out ptr);

            status = (ConnectStatus)num;
            usage  = Utf8ToString(ptr, uint.MaxValue);
            return(snresult);
        }
예제 #13
0
 private static void Connection_StatusChanged(Connection connection, ConnectStatus newStatus, Error error)
 {
     Console.WriteLine($"Connect status changed: {connection.ID} {newStatus} {error}");
     if (newStatus == ConnectStatus.Disconnected && error == Error.FailedConnectionInitialisation)
     {
         Console.WriteLine("Looks like there is no server running.");
     }
 }
예제 #14
0
        private IEnumerator WaitToDisconnectClient(ulong clientId, ConnectStatus reason)
        {
            gameNetPortal.ServerToClientSetDisconnectReason(clientId, reason);

            yield return(new WaitForSeconds(0));

            KickClient(clientId);
        }
        private void OnConnectFinished(ConnectStatus status)
        {
            //on success, there is nothing to do (the MLAPI scene management system will take us to the next scene).
            //on failure, we must raise an event so that the UI layer can display something.
            Debug.Log("RecvConnectFinished Got status: " + status);

            ConnectFinished?.Invoke(status);
        }
예제 #16
0
 //==================================
 //显示当前蓝牙的状态
 private void ChangeBleStatus(ConnectStatus status)
 {
     this.CurStatus = status;
     //foreach (var item in dictStatusImg)
     //{
     //    item.Value.enabled = item.Key == status ? true : false;
     //}
 }
예제 #17
0
        public void makeConnect(ConnectStatus flag)
        {
            this.Dispatcher.Invoke(new Action(() =>
            {
                switch (flag)
                {
                case ConnectStatus.Connect:
                    ConnectButton.Content   = "Connect";
                    ConnectButton.IsEnabled = true;

                    IPBox.IsEnabled   = true;
                    PortBox.IsEnabled = true;
                    NickBox.IsEnabled = true;
                    KeyBox.IsEnabled  = true;

                    messageArea.Width    = 460;
                    sendBox.Width        = 460;
                    ConnectButton.Margin = new Thickness(479, 334, 0, 0);

                    //Title
                    TitleTextBlock.Text = programTitle;

                    break;

                case ConnectStatus.Disconnect:
                    ConnectButton.Content   = "Disconnect";
                    ConnectButton.IsEnabled = true;

                    IPBox.IsEnabled   = false;
                    PortBox.IsEnabled = false;
                    NickBox.IsEnabled = false;
                    KeyBox.IsEnabled  = false;

                    messageArea.Width    = 660;
                    sendBox.Width        = 660;
                    ConnectButton.Margin = new Thickness(479, 435, 0, 0);

                    //Title
                    TitleTextBlock.Text = string.Format("{0} @ {1} : {2}", nickname, IPBox.Text, PortBox.Text);

                    break;

                case ConnectStatus.Working:
                    ConnectButton.Content   = "Wait...";
                    ConnectButton.IsEnabled = false;

                    IPBox.IsEnabled   = false;
                    PortBox.IsEnabled = false;
                    NickBox.IsEnabled = false;
                    KeyBox.IsEnabled  = false;
                    break;

                default:
                    break;
                }
            }));
        }
예제 #18
0
 protected override void OnDisconnected(Socket socket)
 {
     base.OnDisconnected(socket);
     //UnityEngine.Debug.Log("Server Offline");
     if (socket == mySocket)
     {
         connectStatus = ConnectStatus.Closed;
     }
 }
예제 #19
0
 public void ConnectToServer(string ipAddr, int port)
 {
     if (connectStatus <= ConnectStatus.Connected)
     {
         return;
     }
     connectStatus = ConnectStatus.Connecting;
     new Thread(() => { Connect(ipAddr, port); }).Start();
 }
예제 #20
0
        private void HandleConnectionFinished(ConnectStatus status)
        {
            if (status != ConnectStatus.Success)
            {
                DisconnectReason.SetDisconnectReason(status);
            }

            OnConnectionFinished?.Invoke(status);
        }
예제 #21
0
    public void DisconnectServer()
    {
        if (m_strServerAddr == null || m_strServerAddr.Length == 0)
        {
            return;
        }

        m_Socket.close();
        m_connectStatus = ConnectStatus.DISCONNECTED;
    }
예제 #22
0
        /// <summary>
        /// Disconnects the websocket
        /// </summary>
        public static void Disconnect()
        {
            if (!IsConnected())
            {
                MessageBox.Show("You aren't connected.", "Sharpcon", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                return;
            }

            ConnectStatus.SetText("Disconnecting...");
            webSocket.CloseAsync();
        }
예제 #23
0
 /// <summary>
 /// Responsible for the Server->Client RPC's of the connection result.
 /// </summary>
 /// <param name="netId"> id of the client to send to </param>
 /// <param name="status"> the status to pass to the client</param>
 public void S2CConnectResult(ulong netId, ConnectStatus status)
 {
     using (var buffer = PooledNetworkBuffer.Get())
     {
         using (var writer = PooledNetworkWriter.Get(buffer))
         {
             writer.WriteInt32((int)status);
             MLAPI.Messaging.CustomMessagingManager.SendNamedMessage("S2C_ConnectResult", netId, buffer, NetworkChannel.Internal);
         }
     }
 }
예제 #24
0
 /// <summary>
 /// Connection failed if the current state equals the given state
 /// </summary>
 /// <param name="state"></param>
 /// <param name="status"></param>
 private void ConnectFailed(ConnectionState state, ConnectStatus status)
 {
     if (State != state)
     {
         return;
     }
     SetConnectionState(ConnectionState.ReadyToConnect);
     retryCount = 0;
     timer.Stop();
     HandleConnected(status);
 }
예제 #25
0
        private void RegisterClientMessageHandlers()
        {
            MLAPI.Messaging.CustomMessagingManager.RegisterNamedMessageHandler("S2C_ConnectResult", (senderClientId, stream) =>
            {
                using (var reader = PooledNetworkReader.Get(stream))
                {
                    ConnectStatus status = (ConnectStatus)reader.ReadInt32();

                    ConnectFinished?.Invoke(status);
                }
            });
        }
예제 #26
0
        //-------------------------------------------- Event Observer -------------------------------------------------------------------------

        /// <summary>
        /// FFTAICommunicationOperation Init
        /// </summary>
        public FFTAICommunicationOperation()
        {
            BasicPingOperation      = new BasicPingOperation();
            BasicSocketOperation    = new BasicSocketOperation();
            BasicTcpClientOperation = new BasicTcpClientOperation();
            BasicUdpClientOperation = new BasicUdpClientOperation();

            MMUConnectStatus = ConnectStatus.DisConnected;

            Observers = new List <IFFTAICommunicationOperationObserver>();
            ConnectionStatusObservers = new List <IFFTAICommunicationOperationConnectionStatusObserver>();
        }
예제 #27
0
        protected override void RegisterClientMessageHandlers()
        {
            CustomMessagingManager.RegisterNamedMessageHandler(NetMessageName.s2c_ConnectResult, (ulSenderClientId, hStream) =>
            {
                using (var hReader = PooledNetworkReader.Get(hStream))
                {
                    ConnectStatus eStatus = (ConnectStatus)hReader.ReadInt32();

                    m_hConnectFinishCallback?.Invoke(eStatus);
                }
            });
        }
예제 #28
0
 /// <summary>
 /// 循环检测重连状态
 /// </summary>
 void Update()
 {
     if (currentStatus == ConnectStatus.RECONNECT)
     {
         currentStatus = ConnectStatus.READY_TO_RECONNECT;
         StartCoroutine(Connect());
     }
     if (IsConnected())
     {
         ReadMsg();
     }
 }
예제 #29
0
        private void ApprovalCheck(byte[] connectionData, ulong clientId, NetworkManager.ConnectionApprovedDelegate callback)
        {
            if (connectionData.Length > MaxConnectionPayload)
            {
                callback(false, 0, false, null, null);
                return;
            }

            if (clientId == NetworkManager.Singleton.LocalClientId)
            {
                callback(false, null, true, null, null);
                return;
            }

            string payload           = Encoding.UTF8.GetString(connectionData);
            var    connectionPayload = JsonUtility.FromJson <ConnectionPayload>(payload);

            ConnectStatus gameReturnStatus = ConnectStatus.Success;

            // This stops us from running multiple standalone builds since
            // they disconnect eachother when trying to join
            //
            // if (clientData.ContainsKey(connectionPayload.clientGUID))
            // {
            //     ulong oldClientId = clientData[connectionPayload.clientGUID].ClientId;
            //     StartCoroutine(WaitToDisconnectClient(oldClientId, ConnectStatus.LoggedInAgain));
            // }

            if (gameInProgress)
            {
                gameReturnStatus = ConnectStatus.GameInProgress;
            }
            else if (clientData.Count >= maxPlayers)
            {
                gameReturnStatus = ConnectStatus.ServerFull;
            }

            if (gameReturnStatus == ConnectStatus.Success)
            {
                clientSceneMap[clientId] = connectionPayload.clientScene;
                clientIdToGuid[clientId] = connectionPayload.clientGUID;
                clientData[connectionPayload.clientGUID] = new PlayerData(connectionPayload.playerName, clientId);
            }

            callback(false, 0, true, null, null);

            gameNetPortal.ServerToClientConnectResult(clientId, gameReturnStatus);

            if (gameReturnStatus != ConnectStatus.Success)
            {
                StartCoroutine(WaitToDisconnectClient(clientId, gameReturnStatus));
            }
        }
 /// <summary>
 /// Callback when the server sends us back a connection finished event.
 /// </summary>
 /// <param name="status"></param>
 private void OnConnectFinished(ConnectStatus status)
 {
     if (status != ConnectStatus.Success)
     {
         m_ResponsePopup.SetupNotifierDisplay("Connection Failed", "Something went wrong", false, true);
     }
     else
     {
         //Here we want to display that the connection was successful before we load in game.
         m_ResponsePopup.SetupNotifierDisplay("Success!", "Joining Now", false, false);
     }
 }
예제 #31
0
 void _client_ConnectStatusChange(ulong serverID, ConnectStatus newStatus, uint errorNumber)
 {
     if(newStatus == ConnectStatus.STATUS_CONNECTION_ESTABLISHED)
     { 
         List<ushort> clients = _client.getChannelClientList();
         for (int i = 0; i < clients.Count; i++)
         {
             string clientName = _client.getStringVariable(clients[i], ClientProperties.CLIENT_NICKNAME);
             _clients.Add(clientName, clients[i]);
             addToClientList(clientName);
         }
     }
 }
예제 #32
0
 void _client_ConnectStatusChange(ulong serverID, ConnectStatus newStatus, uint errorNumber)
 {
     if (newStatus == ConnectStatus.STATUS_CONNECTION_ESTABLISHED)
     {
         List <ushort> clients = _client.getChannelClientList();
         for (int i = 0; i < clients.Count; i++)
         {
             string clientName = _client.getStringVariable(clients[i], ClientProperties.CLIENT_NICKNAME);
             _clients.Add(clientName, clients[i]);
             addToClientList(clientName);
         }
     }
 }
예제 #33
0
        public MainWindow()
        {
            if (App.IsShutDown)
                return;

            InitializeComponent();
            InitializeBinding();

            if (
                settings.ProxyType == "SSH" && Plink.CheckSettings() ||
                settings.ProxyType == "HTTP"
            ) WindowState = WindowState.Minimized;

            connectStatus = new ConnectStatus(this);
            plink = new Plink();
            privoxy = new Privoxy();
        }
        /// <summary>
        /// Connection callback
        /// </summary>
        /// <param name="client">client</param>
        /// <param name="status">connection status</param>
        public void OnParallelClientConnected(IParallelClient client, ConnectStatus status)
        {
            if (status == ConnectStatus.SUCCESS)
            {
                Debug.Print("Connected: " + client.Guid.ToString());

                Task t = new Task(delegate()
                {
                    for (int i = 0; i < m_count; i++)
                    {
                        byte[] array = Encoding.ASCII.GetBytes("[" + i + "] " + m_sendText);
                        client.Send(array);
                    }
                });
                t.Start();
            }
            else
            {
                Debug.Print(status.ToString());
            }
            
        }
예제 #35
0
        protected override bool connect()
        {
            IPAddress addr = IPAddress.Parse(_ep.host);
            IPEndPoint ep = new IPEndPoint(addr, _ep.port);

            _status = ConnectStatus.CONNECTING;
            _sock = newSocket();
            _sock.BeginConnect(ep, delegate(IAsyncResult  ar) {

                RpcConnectionAsyncSocket s = (RpcConnectionAsyncSocket)ar.AsyncState;
                try {
                    s.handler.EndConnect(ar);
                    if (s.handler.Connected == true) {
                        s.onConnected();
                        //s._thread = new Thread(run);
                        //s._thread.Start();  // launch one thread for data recieving .
                    }
                }
                catch (Exception e) {
                    // connect failed
                    //s.onDisconnected();
                    RpcCommunicator.instance().logger.error("connect to host failed!");
                }
                //connect failed, trigger event to user as Promise
                if (s.handler.Connected == false) {
                    foreach (RpcMessage m in _unsent_msglist) {
                        RpcAsyncContext ctx = m.async.ctx;
                        ctx.exception = new RpcException(RpcException.RPCERROR_CONNECT_FAILED);
                        m.async.promise.onError(ctx);
                    }
                    _unsent_msglist.Clear();
                }
                s._status = ConnectStatus.STOPPED;
            }, this);

            return true;
        }
예제 #36
0
 protected override void onDisconnected()
 {
     base.onDisconnected();
     _unsent_msglist.Clear();
     _status = ConnectStatus.STOPPED;
 }
 /// <summary>
 /// Connection callback
 /// </summary>
 /// <param name="client">client</param>
 /// <param name="status">connection status</param>
 public void OnConnected(INetworkClient client, ConnectStatus status)
 {
     if (status == ConnectStatus.SUCCESS)
     {
         lock (m_generalLock)
         {
             m_clientSet.Add(client);
         }
         CurSocketCount++;
         if (CurSocketCount == 1)
         {
             if (CallBackObj != null)
             {
                 Task t = new Task(delegate()
                 {
                     CallBackObj.OnConnected(this, status);
                 });
                 t.Start();
                 //CallBackObj.OnConnected(this, status);
             }
         }
        
     }
     
 }
예제 #38
0
        /// <summary>
        /// Connection callback
        /// </summary>
        /// <param name="client">client</param>
        /// <param name="status">connection status</param>
        public void OnConnected(INetworkClient client, ConnectStatus status)
        {
            lock (m_generalLock)
            {
                m_curConnectionTry++;
            }
            if (status == ConnectStatus.SUCCESS)
            {
                lock (m_generalLock)
                {
                    m_clientSet.Add(client);
                }
                CurSocketCount++;
                if (CurSocketCount == 1)
                {
                    Task t = new Task(delegate()
                    {
                        OnParallelClientConnected(this, status);
                    });
                    t.Start();
                    
                }

            }
            else
            {
                lock (m_generalLock)
                {
                    // if all sockets failed, trigger IsConnectionAlive to false
                    if (CurSocketCount==0 && m_curConnectionTry == MaxSocketCount)
                    {
                        m_sendReadyEvent.SetEvent();
                        IsConnectionAlive = false;
                        
                        Task t = new Task(delegate()
                        {
                            OnParallelClientConnected(this, status);
                        });
                        t.Start();
                        
                    }
                }
            }
            
        }
예제 #39
0
        /// <summary>
        /// This method sends a community account authorization response to a
        /// game server, or game client (for initial login).
        /// </summary>
        /// <param name="Address">Supplies the message recipient.</param>
        /// <param name="AccountName">Supplies the account name.</param>
        /// <param name="Status">Supplies the authorization status
        /// code.</param>
        public void SendMstCommunityAccountAuthorization(IPEndPoint Address, string AccountName, ConnectStatus Status)
        {
            using (ExoBuildBuffer Builder = new ExoBuildBuffer())
            {
                Builder.WriteDWORD((uint)MstCmd.CommunityAuthorization);
                Builder.WriteSmallString(AccountName, 16);
                Builder.WriteWORD((ushort)Status);

                Logger.Log(LogLevel.Verbose, "NWMasterServer.SendMstCommunityAccountAuthorization(): Authorizing account {0} for server {1} with status {2}.", AccountName, Address, Status);

                SendRawDataToMstClient(Address, Builder);
            }
        }
예제 #40
0
        void onConnectStatusChange(ulong serverID, ConnectStatus newStatus, uint errorNumber)
        {
            if (newStatus == ConnectStatus.STATUS_CONNECTED)
            {
                _state = ClientState.STATE_CONNECTED;
                _connectedServerID = serverID;
                ushort clientID;
                if (GetClientID(_connectedServerID, out clientID) != Error.ok)
                {
                    notifyError("Cannot get client ID.");
                    return;
                }
                _currentClientID = clientID;
            }
            else if (newStatus == ConnectStatus.STATUS_CONNECTION_ESTABLISHED)
                _currentClientName = getStringVariable(_currentClientID, ClientProperties.CLIENT_NICKNAME);

            notify(string.Format("Connect status changed: ServerID:{0} Status:{1} Error:{2}", serverID, newStatus.ToString(), errorNumber));
            /* Failed to connect ? */
            if (newStatus == ConnectStatus.STATUS_DISCONNECTED && errorNumber == Error.failed_connection_initialisation)
            {
                notifyError(string.Format("Looks like there is no server running, terminate!"));
                return;
            }
            if (ConnectStatusChange != null)
                ConnectStatusChange(serverID, newStatus, errorNumber);
        }
 public void OnConnected(INetworkClient client, ConnectStatus status)
 {
     MessageBox.Show("Connected to the server!");
 }
예제 #42
0
        public void makeConnect(ConnectStatus flag)
        {
            this.Dispatcher.Invoke(new Action(() =>
                {
                    switch (flag)
                    {
                        case ConnectStatus.Connect:
                            ConnectButton.Content = "Connect";
                            ConnectButton.IsEnabled = true;

                            IPBox.IsEnabled = true;
                            PortBox.IsEnabled = true;
                            NickBox.IsEnabled = true;
                            KeyBox.IsEnabled = true;

                            messageArea.Width = 460;
                            sendBox.Width = 460;
                            ConnectButton.Margin = new Thickness(479, 334, 0, 0);

                            //Title
                            TitleTextBlock.Text = programTitle;

                            break;
                        case ConnectStatus.Disconnect:
                            ConnectButton.Content = "Disconnect";
                            ConnectButton.IsEnabled = true;

                            IPBox.IsEnabled = false;
                            PortBox.IsEnabled = false;
                            NickBox.IsEnabled = false;
                            KeyBox.IsEnabled = false;

                            messageArea.Width = 660;
                            sendBox.Width = 660;
                            ConnectButton.Margin = new Thickness(479, 435, 0, 0);

                            //Title
                            TitleTextBlock.Text = string.Format("{0} @ {1} : {2}", nickname, IPBox.Text, PortBox.Text);

                            break;
                        case ConnectStatus.Working:
                            ConnectButton.Content = "Wait...";
                            ConnectButton.IsEnabled = false;

                            IPBox.IsEnabled = false;
                            PortBox.IsEnabled = false;
                            NickBox.IsEnabled = false;
                            KeyBox.IsEnabled = false;
                            break;
                        default:
                            break;
                    }
                }));
        }