Exemplo n.º 1
0
            void _LinkM(CKey Key_, CNamePort NamePort_)
            {
                var Client = _Clients[(Int32)Key_.PeerNum];

                Client.MasterNamePort.Data = new CNamePort(NamePort_);
                _NetM.Send(Key_.PeerNum, new SHeader(EProto.CmLogin), new SCmLogin(Client.UID, Client.ID, Client.SubUID));
            }
Exemplo n.º 2
0
            void _LinkA(CKey Key_, CNamePort NamePort_)
            {
                switch (_Clients[(Int32)Key_.PeerNum].CaProto)
                {
                case EProto.CaCreate:
                    _NetA.Send(Key_.PeerNum, new SHeader(_Clients[(Int32)Key_.PeerNum].CaProto), new SCaCreate(_Clients[(Int32)Key_.PeerNum].ID, _Clients[(Int32)Key_.PeerNum].Nick));
                    break;

                case EProto.CaLogin:
                    _NetA.Send(Key_.PeerNum, new SHeader(_Clients[(Int32)Key_.PeerNum].CaProto), new SCaLogin(_Clients[(Int32)Key_.PeerNum].UID, _Clients[(Int32)Key_.PeerNum].ID));
                    break;

                case EProto.CaCheck:
                    _NetA.Send(Key_.PeerNum, new SHeader(_Clients[(Int32)Key_.PeerNum].CaProto), new SCaCheck(_Clients[(Int32)Key_.PeerNum].ID));
                    break;
                }
            }
Exemplo n.º 3
0
            public void Send(TPeerCnt PeerNum_, CStream Stream_)
            {
                if (_Servers[(Int32)PeerNum_].State != _EState.Allocated)
                {
                    return;
                }

                _Net.Send(PeerNum_, (Int32)EProto.CsUserProto, Stream_);
            }
Exemplo n.º 4
0
            void _LinkS(CKey Key_, CNamePort NamePort_)
            {
                var Client = _Clients[(Int32)Key_.PeerNum];

                _NetS.Send(Key_.PeerNum, new SHeader(EProto.CsLogin), new SCsLogin(Client.UID, Client.ID, Client.SubUID, Client.SessionCode, _Version, Client.IsCreate(), Client.Stream));
            }
Exemplo n.º 5
0
            void _LinkCallback(CKey Key_, CNamePort NamePort_)
            {
                var itPeerNet = _PeersNet.Get((Int32)Key_.PeerNum); // _Net.Connect() 호출정상이면 무조건 _PeersNet 에 추가된 상태이므로 itPeerNet 체크 불필요

                if (!itPeerNet.Data.ExtKey)
                {
                    return;
                }

                var itPeerExt = _PeersExt.Get((Int32)itPeerNet.Data.ExtKey.PeerNum);

                if (!itPeerExt)
                {
                    return;
                }

                if (itPeerExt.Data.HaveBeenLinked)
                {
                    _Net.Send(Key_.PeerNum, new SHeaderCs(EProtoCs.ReLink), new SReLinkCs(itPeerExt.Data.ServerExtKey, itPeerExt.Data.ProtoSeqMustRecv));
                }
                else
                {
                    _Net.Send(Key_.PeerNum, new SHeaderCs(EProtoCs.Link), new SLinkCs());
                }
            }
Exemplo n.º 6
0
 void _LinkS(CKey Key_, CNamePort NamePort_)
 {
     _ServerKey = Key_;
     _LinkFunc(Key_, NamePort_);
     _Net.Send(Key_.PeerNum, new SCsHeader(ECsProto.Login, new List <SKey>()), _LoginInfo);
 }
Exemplo n.º 7
0
 void _LinkM(CKey Key_, CNamePort NamePort_)
 {
     _NetM.Send(Key_.PeerNum, new SHeader(EProto.AmLogin), new SAmLogin(_ID, _PW, _Data.Data.Version));
     _LinkFunc(Key_, NamePort_);
 }