コード例 #1
0
            void _UnLink(_TPeersExtIt itPeerExt_, ENetRet NetRet_)
            {
                if (itPeerExt_.Data.itPeerWillExpire)
                {
                    _PeersWillExpire.Remove(itPeerExt_.Data.itPeerWillExpire);
                    itPeerExt_.Data.itPeerWillExpire = _PeersWillExpire.End();
                }

                var ExtKey         = itPeerExt_.Data.Key;
                var HaveBeenLinked = itPeerExt_.Data.HaveBeenLinked;

                _PeersExt.Remove(itPeerExt_);

                try
                {
                    if (HaveBeenLinked)
                    {
                        _UnLinkFunc(ExtKey, NetRet_);
                    }
                    else
                    {
                        _LinkFailFunc(ExtKey.PeerNum, NetRet_);
                    }
                }
                catch
                {
                }
            }
コード例 #2
0
ファイル: Base.cs プロジェクト: thinking2535/Rso
            public static EGameRet NetRetToGameRet(ENetRet NetRet_)
            {
                switch (NetRet_)
                {
                case ENetRet.Ok: return(EGameRet.Ok);

                case ENetRet.UserClose: return(EGameRet.UserClose);

                case ENetRet.HeartBeatFail: return(EGameRet.HeartBeatFail);

                case ENetRet.KeepConnectTimeOut: return(EGameRet.KeepConnectTimeOut);

                case ENetRet.ConnectFail: return(EGameRet.ConnectFail);

                case ENetRet.CertifyFail: return(EGameRet.CertifyFail);

                case ENetRet.SystemError: return(EGameRet.SystemError);

                case ENetRet.SocketError: return(EGameRet.SocketError);

                case ENetRet.InvalidPacket: return(EGameRet.InvalidPacket);

                default: return(EGameRet.NetError);
                }
            }
コード例 #3
0
ファイル: Net.cs プロジェクト: thinking2535/Rso
            protected void _Close(TIterator itPeer_, ENetRet NetRet_)
            {
                var Key = itPeer_.Data.Key;

                itPeer_.Data.Dispose();
                _Peers.Remove(itPeer_);
                _UnLinkFunc(Key, NetRet_);
            }
コード例 #4
0
            void _LinkFail(TPeerCnt PeerNum_, ENetRet NetRet_)
            {
                var itServer = _Servers.Get((Int32)PeerNum_);

                itServer.Data.NamePort.Clear();

                _Servers.Remove(itServer);
                _LinkFailFunc(PeerNum_, NetRet_);
            }
コード例 #5
0
 void _LinkFail(TPeerCnt PeerNum_, ENetRet NetRet_)
 {
     try
     {
         _LinkFailFunc(PeerNum_, NetRet_);
     }
     catch
     {
     }
 }
コード例 #6
0
ファイル: Peer.cs プロジェクト: thinking2535/Rso
            public void WillClose(TimeSpan WaitDuration_, ENetRet NetRet_)
            {
                if (DoesWillClose())
                {
                    return;
                }

                _WillCloseNetRet = NetRet_;
                _CloseTime       = (DateTime.Now + WaitDuration_);
            }
コード例 #7
0
ファイル: Client.cs プロジェクト: thinking2535/Rso
 void _LinkFailA(TPeerCnt PeerNum_, ENetRet NetRet_)
 {
     if (_Clients[(Int32)PeerNum_].IsCheck())
     {
         _CheckFail(PeerNum_, global.NetRetToGameRet(NetRet_));
     }
     else
     {
         _LoginFail(PeerNum_, global.NetRetToGameRet(NetRet_));
     }
 }
コード例 #8
0
ファイル: MonitorClient.cs プロジェクト: thinking2535/Rso
        void UnLink(CKey Key_, ENetRet NetRet_)
        {
            while (_AgentInfos.Count > 0)
            {
                _DelAgent(_AgentInfos.First().Key);
            }

            cbServer.Enabled      = true;
            btnConnect.Enabled    = true;
            btnDisconnect.Enabled = false;
        }
コード例 #9
0
ファイル: PatchAgent.cs プロジェクト: thinking2535/Rso
 void UnLink(CKey Key_, ENetRet NetRet_)
 {
     ClearUpdateList();
     Log("UnLink PeerNum : " + Key_.PeerNum.ToString());
     btnLogin.Enabled  = true;
     btnLogout.Enabled = false;
     btnSub.Enabled    = false;
     btnAdd.Enabled    = false;
     btnDel.Enabled    = false;
     btnUpdate.Enabled = false;
     btnReset.Enabled  = false;
 }
コード例 #10
0
ファイル: Client.cs プロジェクト: thinking2535/Rso
            void _UnLinkS(CKey Key_, ENetRet NetRet_)
            {
                var It = _Servers.Get((Int32)Key_.PeerNum);

                if (It.Data.Logon)
                {
                    _Servers.Remove((Int32)Key_.PeerNum);
                    _UnLinkFuncS(Key_, NetRet_);
                }
                else
                {
                    _Connect(Key_.PeerNum);
                }
            }
コード例 #11
0
            void _PushIOCP(SocketAsyncEventArgs Event_, ENetRet NetRet_)
            {
                lock (_Connects)
                {
                    _SConnect LFConnect = null;
                    while ((LFConnect = _Connects.GetPushBuf()) == null)
                    {
                        Thread.Sleep(3);
                    }

                    LFConnect.Event  = Event_;
                    LFConnect.NetRet = NetRet_;
                    _Connects.Push();
                }
            }
コード例 #12
0
            void _UnLinkCallback(CKey Key_, ENetRet NetRet_)
            {
                var itPeerNet = _PeersNet.Get((Int32)Key_.PeerNum);

                if (!itPeerNet)
                {
                    return;
                }

                var ExtKey = itPeerNet.Data.ExtKey;

                _PeersNet.Remove(itPeerNet);

                if (ExtKey)
                {
                    var itPeerExt = _PeersExt.Get((Int32)ExtKey.PeerNum);
                    if (itPeerExt)
                    {
                        if (NetRet_ == ENetRet.CertifyFail ||
                            NetRet_ == ENetRet.InvalidPacket ||
                            NetRet_ == ENetRet.SystemError ||
                            NetRet_ == ENetRet.UserClose ||
                            NetRet_ == ENetRet.KeepConnectTimeOut)
                        {
                            _UnLink(itPeerExt, NetRet_);
                        }
                        else
                        {
                            try
                            {
                                if (!itPeerExt.Data.itPeerWillExpire)
                                {
                                    itPeerExt.Data.itPeerWillExpire = _PeersWillExpire.Add(new _SPeerWillExpire(DateTime.Now + _KeepConnectDuration, itPeerExt.Data.Key.PeerNum));
                                    _UnLinkFuncSoft(ExtKey, NetRet_);
                                }

                                itPeerExt.Data.itPeerWillExpire.Data.NeedToConnect = true;
                                itPeerExt.Data.NetKey = null;
                            }
                            catch
                            {
                                _UnLink(itPeerExt, NetRet_);
                            }
                        }
                    }
                }
            }
コード例 #13
0
            void _UnLink(CKey Key_, ENetRet NetRet_)
            {
                var itServer = _Servers.Get((Int32)Key_.PeerNum);

                switch (itServer.Data.State)
                {
                case _EState.WillConnectServer:
                    return;

                case _EState.Allocated:
                    _UnLinkFunc(Key_, NetRet_);
                    break;

                default:
                    _LinkFailFunc(Key_.PeerNum, NetRet_);
                    break;
                }

                _Servers.Remove(itServer);
            }
コード例 #14
0
ファイル: Client.cs プロジェクト: thinking2535/Rso
            void _LinkFailS(TPeerCnt PeerNum_, ENetRet NetRet_)
            {
                var Client = _Clients.Get((Int32)PeerNum_);

                if (!Client)
                {
                    return;
                }

                if (_Clients[(Int32)PeerNum_].CurNode != _ENode.Server)
                {
                    return;
                }

                if (!_Clients[(Int32)PeerNum_].IsValidAccount())
                {
                    _LoginFail(PeerNum_, global.NetRetToGameRet(NetRet_));
                    return;
                }

                _ConnectToUpper(PeerNum_, _ENode.Master);
            }
コード例 #15
0
ファイル: Client.cs プロジェクト: thinking2535/Rso
            void _UnLinkM(CKey Key_, ENetRet NetRet_)
            {
                var Client = _Clients.Get((Int32)Key_.PeerNum);

                if (!Client)
                {
                    return;
                }

                if (_Clients[(Int32)Key_.PeerNum].CurNode != _ENode.Master)
                {
                    return;
                }

                if (!_Clients[(Int32)Key_.PeerNum].IsValidAccount())
                {
                    _LoginFail(Key_.PeerNum, global.NetRetToGameRet(NetRet_));
                    return;
                }

                _ConnectToUpper(Key_.PeerNum, _ENode.Auth);
            }
コード例 #16
0
ファイル: Client.cs プロジェクト: thinking2535/Rso
            void _UnLinkA(CKey Key_, ENetRet NetRet_)
            {
                var Client = _Clients.Get((Int32)Key_.PeerNum);

                if (!Client)
                {
                    return;
                }

                if (_Clients[(Int32)Key_.PeerNum].IsCheck())
                {
                    _CheckFail(Key_.PeerNum, global.NetRetToGameRet(NetRet_));
                }
                else
                {
                    if (_Clients[(Int32)Key_.PeerNum].CurNode != _ENode.Auth)
                    {
                        return;
                    }

                    _LoginFail(Key_.PeerNum, global.NetRetToGameRet(NetRet_));
                }
            }
コード例 #17
0
            void _LinkFailCallback(TPeerCnt PeerNum_, ENetRet NetRet_)
            {
                var itPeerNet = _PeersNet.Get((Int32)PeerNum_);

                if (!itPeerNet)
                {
                    return;
                }

                var ExtKey = itPeerNet.Data.ExtKey;

                _PeersNet.Remove(itPeerNet);

                if (ExtKey)
                {
                    var itPeerExt = _PeersExt.Get((Int32)ExtKey.PeerNum);
                    if (itPeerExt)
                    {
                        itPeerExt.Data.NetKey = null;
                        itPeerExt.Data.itPeerWillExpire.Data.NeedToConnect = true;
                    }
                }
            }
コード例 #18
0
ファイル: Client.cs プロジェクト: thinking2535/Rso
            void _UnLinkS(CKey Key_, ENetRet NetRet_)
            {
                var Client = _Clients.Get((Int32)Key_.PeerNum);

                if (!Client)
                {
                    return;
                }

                if (_Clients[(Int32)Key_.PeerNum].CurNode != _ENode.Server)
                {
                    return;
                }

                if (_Clients[(Int32)Key_.PeerNum].Logon)
                {
                    _Clients.Remove((Int32)Key_.PeerNum);
                    _UnLinkFunc(Key_, global.NetRetToGameRet(NetRet_));
                    return;
                }

                // 현재 클라가 로그인 시에 최초 GameServer로 접속하는 경우는 없고 최소 Master를 거쳐야 하기 때문에 최초 게임서버로 접속하여 호출된 _UnLinkS
                _LoginFail(Key_.PeerNum, global.NetRetToGameRet(NetRet_));
            }
コード例 #19
0
 static void UnLink(CKey Key_, ENetRet NetRet_)
 {
     Console.WriteLine("UnLink PeerNum :" + Key_.PeerNum.ToString());
 }
コード例 #20
0
ファイル: Client.cs プロジェクト: thinking2535/Rso
 void _UnLinkS(CKey Key_, ENetRet NetRet_)
 {
     _UnLinkFunc(Key_, NetRet_);
 }
コード例 #21
0
ファイル: Base.cs プロジェクト: thinking2535/Rso
 public ExceptionNet(ENetRet Ret_, Exception innerException) :
     base(string.Format("ExceptionNet[{0}]", Ret_.ToString()), innerException)
 {
     _Ret = Ret_;
 }
コード例 #22
0
ファイル: Base.cs プロジェクト: thinking2535/Rso
 public ExceptionNet(ENetRet Ret_) :
     base(string.Format("ExceptionNet[{0}]", Ret_.ToString()))
 {
     _Ret = Ret_;
 }
コード例 #23
0
 void _UnLinkCallback(CKey Key_, ENetRet NetRet_)
 {
     _PeersAndConnectings.Remove((Int32)Key_.PeerNum);
     _ConnectTimeOut.Remove((Int32)Key_.PeerNum);
     _UnLinkFunc(Key_, NetRet_);
 }
コード例 #24
0
ファイル: Program.cs プロジェクト: thinking2535/Rso
 static void UnLink(CKey Key_, ENetRet NetRet_)
 {
     Clients.Remove(Key_);
     Console.WriteLine("UnLink");
 }
コード例 #25
0
ファイル: Client.cs プロジェクト: thinking2535/Rso
 void _UnLinkSoftS(CKey Key_, ENetRet NetRet_)
 {
     _UnLinkSoftFunc(Key_, global.NetRetToGameRet(NetRet_));
 }
コード例 #26
0
ファイル: PatchAgent.cs プロジェクト: thinking2535/Rso
 void LinkFail(TPeerCnt PeerNum_, ENetRet NetRet_)
 {
     Log("LinkFail PeerNum : " + PeerNum_.ToString());
     btnLogin.Enabled = true;
 }
コード例 #27
0
ファイル: Program.cs プロジェクト: thinking2535/Rso
 static void LinkFail(TPeerCnt PeerNum_, ENetRet NetRet_)
 {
     Console.WriteLine("LinkFail PeerNum:" + PeerNum_);
 }
コード例 #28
0
ファイル: Client.cs プロジェクト: thinking2535/Rso
 void _LinkFailS(TPeerCnt PeerNum_, ENetRet NetRet_)
 {
     _LinkFailFunc(PeerNum_, NetRet_);
 }
コード例 #29
0
ファイル: Program.cs プロジェクト: thinking2535/Rso
 static void UnLinkSoft(CKey Key_, ENetRet NetRet_)
 {
     Console.WriteLine("UnLinkSoft");
 }
コード例 #30
0
 void _UnLink(TPeerCnt PeerNum_, ENetRet NetRet_)
 {
     _UnLink(_PeersExt.Get((Int32)PeerNum_), NetRet_);
 }