コード例 #1
0
 // ============================================
 // PRIVATE Methods
 // ============================================
 private void UserConnect(UserInfo userInfo)
 {
     try {
         // Connect & Send Login
         P2PManager.AddPeer(userInfo, userInfo.Ip, userInfo.Port);
         PeerSocket peer = (PeerSocket)P2PManager.KnownPeers[userInfo];
         CmdManager.Login(peer, MyInfo.GetInstance());
         OnPeerLogin(peer, userInfo);
     } catch (Exception e) {
         Glue.Dialogs.MessageError("Connenting To " + userInfo.Name + " Failed", e.Message);
     }
 }
コード例 #2
0
 private void UserConnect(UserInfo userInfo)
 {
     try {
         // Connect & Send Login
         P2PManager.AddPeer(userInfo, userInfo.Ip, userInfo.Port);
         PeerSocket peer = (PeerSocket)P2PManager.KnownPeers[userInfo];
         Cmd.Login(peer, MyInfo.GetInstance());
         OnPeerLogin(peer, userInfo);
     } catch (Exception e) {
         string title = "Connection To <b>" + userInfo.Name + "</b> Failed";
         Base.Dialogs.MessageError(title, e.Message);
     }
 }
コード例 #3
0
        private void UserConnect(UserInfo userInfo)
        {
            if (userInfo.SecureAuthentication == false)
            {
                return;
            }

            try {
                // Connect & Send Login
                userInfo.GetIpAndPort();
                Debug.Log("Auto Add Buddy: {0} {1}:{2}", userInfo.Name, userInfo.Ip, userInfo.Port);
                P2PManager.AddPeer(userInfo, userInfo.Ip, userInfo.Port);
                PeerSocket peer = (PeerSocket)P2PManager.KnownPeers[userInfo];
                Cmd.Login(peer, MyInfo.GetInstance());
            } catch (Exception e) {
                Debug.Log("Connection To {0} Failed: {1}", userInfo.Name, e.Message);
            }
        }
コード例 #4
0
            private void SendProtocolEvent(XmlRequest xmlRequest)
            {
                switch (xmlRequest.FirstTag)
                {
                case "login":
                    Login login = new Login(peer, xmlRequest);
                    if (login.Authentication() == true && login.User != null)
                    {
                        // Add to Known User
                        P2PManager.AddPeer(login.User, peer);

                        // Start Login Event
                        CmdManager.LoginEvent(peer, login.User);
                    }
                    else
                    {
                        Debug.Log("Auth Failed: {0}", peer.GetRemoteIP());
                    }
                    break;

                case "quit":
                    CmdManager.QuitEvent(peer, xmlRequest);
                    break;

                case "error":
                    CmdManager.ErrorEvent(peer, xmlRequest);
                    break;

                case "get":
                    CmdManager.GetEvent(peer, xmlRequest);
                    break;

                case "ask":
                    CmdManager.AskEvent(peer, xmlRequest);
                    break;

                case "snd":
                    CmdManager.SndEvent(peer, xmlRequest);
                    break;

                case "snd-start":
                    CmdManager.SndStartEvent(peer, xmlRequest);
                    break;

                case "snd-end":
                    CmdManager.SndEndEvent(peer, xmlRequest);
                    break;

                case "snd-abort":
                    CmdManager.SndAbortEvent(peer, xmlRequest);
                    break;

                case "recv-abort":
                    CmdManager.RecvAbortEvent(peer, xmlRequest);
                    break;

                default:
                    CmdManager.UnknownEvent(peer, xmlRequest);
                    break;
                }
            }
コード例 #5
0
        private void ParseCommand(string xml)
        {
#if DEBUG
            Debug.Log("==================================================");
            if (peer.Info != null)
            {
                UserInfo userInfo = this.peer.Info as UserInfo;
                Debug.Log("Response From: {0}", userInfo.Name);
            }
            else
            {
                Debug.Log("Response From: {0}", peer.GetRemoteIP());
            }
            Debug.Log("Response: '{0}'", xml);
            Debug.Log("==================================================");
#endif

            // Parse Xml Command
            XmlRequest xmlRequest = null;
            try {
                xmlRequest = new XmlRequest(xml);
                xmlRequest.Parse();
            } catch (Exception e) {
                Debug.Log("Parse Xml: {0}", e.Message);
                return;
            }

            // Protocol Commands
            switch (xmlRequest.FirstTag)
            {
            case "login":
                Login login = new Login(peer, xmlRequest);
                if (login.Authentication() == true && login.User != null)
                {
                    // Add to Known User
                    P2PManager.AddPeer(login.User, peer);

                    // Start Login Event
                    CmdManager.StartLoginEvent(peer, login.User);
                }
                else
                {
                    Debug.Log("Auth Failed: {0}", peer.GetRemoteIP());
                }
                break;

            case "quit":
                CmdManager.StartQuitEvent(peer, xmlRequest);
                break;

            case "error":
                CmdManager.StartErrorEvent(peer, xmlRequest);
                break;

            case "get":
                CmdManager.StartGetEvent(peer, xmlRequest);
                break;

            case "ask":
                CmdManager.StartAskEvent(peer, xmlRequest);
                break;

            case "accept":
                CmdManager.StartAcceptEvent(peer, xmlRequest);
                break;

            case "snd":
                CmdManager.StartSndEvent(peer, xmlRequest);
                break;

            case "snd-start":
                CmdManager.StartSndStartEvent(peer, xmlRequest);
                break;

            case "snd-end":
                CmdManager.StartSndEndEvent(peer, xmlRequest);
                break;

            case "snd-abort":
                CmdManager.StartSndAbortEvent(peer, xmlRequest);
                break;

            case "recv-abort":
                CmdManager.StartRecvAbortEvent(peer, xmlRequest);
                break;

            default:
                CmdManager.StartUnknownEvent(peer, xmlRequest);
                break;
            }
        }