Esempio n. 1
0
            void _Connect(TPeerCnt PeerNum_, _ENode Node_, CNamePort NamePort_)
            {
                _Clients[(Int32)PeerNum_].CurNode = Node_;

                switch (Node_)
                {
                case _ENode.Auth:
                    if (!_NetA.Connect(_Clients[(Int32)PeerNum_].AuthNamePort, PeerNum_))
                    {
                        _LoginFail(PeerNum_, EGameRet.ConnectAuthFail);
                    }
                    break;

                case _ENode.Master:
                    if (_NetM.Connect(NamePort_, PeerNum_) == null)
                    {
                        _LoginFail(PeerNum_, EGameRet.ConnectMasterFail);
                    }
                    break;

                case _ENode.Server:
                    if (_NetS.Connect(NamePort_, PeerNum_) == null)
                    {
                        _LoginFail(PeerNum_, EGameRet.ConnectServerFail);
                    }
                    break;

                default:
                    break;
                }
            }
Esempio n. 2
0
            bool _Connect(_TPeersExtIt itPeerExt_)
            {
                try
                {
                    var itPeerNet = _PeersNet.Add(new _SPeerNet(itPeerExt_.Data.Key));

                    try
                    {
                        var NetKey = _Net.Connect(itPeerExt_.Data.NamePort, (TPeerCnt)itPeerNet.Index);
                        if (NetKey == null)
                        {
                            throw new Exception();
                        }

                        itPeerExt_.Data.NetKey = NetKey;
                        itPeerExt_.Data.itPeerWillExpire.Data.NeedToConnect = false;
                        return(true);
                    }
                    catch
                    {
                        _PeersNet.Remove(itPeerNet);
                        throw;
                    }
                }
                catch
                {
                    return(false);
                }
            }
Esempio n. 3
0
            void _RecvAcServerToConnect(CKey Key_, CStream Stream_)
            {
                var itServer = _Servers.Get((Int32)Key_.PeerNum);

                var Proto = new SAcServerToConnect();

                Stream_.Pop(Proto);

                itServer.Data.State = _EState.WillConnectServer;
                _Net.Close(Key_.PeerNum);

                itServer.Data.State         = _EState.Null;
                itServer.Data.NamePort.Data = new CNamePort(Proto.ClientBindNamePortPub);
                if (_Net.Connect(new CNamePort(Proto.ClientBindNamePortPub), Key_.PeerNum) == null)
                {
                    _Servers.Remove(itServer);
                    _LinkFailFunc(Key_.PeerNum, ENetRet.SystemError);
                    return;
                }
            }
Esempio n. 4
0
            public bool Login(SCsLogin LoginInfo_)
            {
                _LoginInfo = LoginInfo_;

                if (_Net.Connect(_ServerNamePort) == null)
                {
                    return(false);
                }

                return(true);
            }
Esempio n. 5
0
 public CKey Connect(string ID_, string PW_, TPeerCnt PeerNum_)
 {
     _SetAccount(ID_, PW_);
     return(_NetM.Connect(_MasterNamePort, PeerNum_));
 }