private Dictionary <uint, UdpClientSession> dict = new Dictionary <uint, UdpClientSession>();  //conv -  UdpClientSession

        public UdpClientSession CreateSession(uint conv, IUdpMsgHandler _handler, Socket sendSocket, IPEndPoint remoteIEP, long heartBeatTime)
        {
            UdpClientSession session = new UdpClientSession(conv, sendSocket, remoteIEP, _handler, heartBeatTime);

            dict[session.GetConv()] = session;
            Log.InfoAf("[Udp] UdpClientSessionMgr  Conv={0} Add UdpClientSession RemoteIp ={1} RemotePort = {2}", conv, session.GetRemoteIp(), session.GetRemotePort());
            return(session);
        }
        public UdpServerSessionMgr(UInt64 _serverId, uint _convCapacity, IUdpMsgHandler _handler, long _maxHeartBeatTime)
        {
            serverId         = _serverId;
            convCapacity     = _convCapacity;
            handler          = _handler;
            maxHeartBeatTime = _maxHeartBeatTime;

            for (uint i = 1; i <= convCapacity; ++i)
            {
                freeConvQueue.Enqueue(i);
            }
        }
Exemple #3
0
        public UdpClientSession(uint _conv, Socket _sendSocket, IPEndPoint _remoteIEP, IUdpMsgHandler _handler, long _heartBeatTime)
        {
            clientFlag = true;
            conv       = _conv;
            handler    = _handler;
            remoteIEP  = _remoteIEP;

            maxHeartBeatTime = _heartBeatTime;

            kcp = new Kcp(conv, kcpSender);
            kcp.NoDelay(1, 10, 2, 1);
            kcpSender.Init(_sendSocket, kcp, remoteIEP);
        }
Exemple #4
0
        public UdpServerSession(UInt64 _serverId, uint _conv, Socket _sendSocket, IPEndPoint _remoteIEP, IUdpMsgHandler _handler, long _maxHeartBeatTime)
        {
            serverId    = _serverId;
            handler     = _handler;
            remoteIEP   = _remoteIEP;
            iepHashCode = _remoteIEP.GetHashCode();
            conv        = _conv;

            maxHeartBeatTime      = _maxHeartBeatTime;
            nextCreateSessionTick = clock.ElapsedMilliseconds + KcpDef.KcpMaxVerifyDiffTime;

            kcp = new Kcp(conv, kcpSender);
            kcp.NoDelay(1, 10, 2, 1);
            kcpSender.Init(_sendSocket, kcp, remoteIEP);
            remoteIEP = _remoteIEP;
        }
Exemple #5
0
 public void Start(IPEndPoint localIEP, UdpVerfiyReqDele _dele, uint _convCapacity, IUdpMsgHandler _handler, long _maxHeartBeatTime)
 {
     udpReceiver = new UdpServerReceiver(serverId, _dele, _convCapacity, _handler, _maxHeartBeatTime);
     udpReceiver.StartReceive(localIEP);
 }
Exemple #6
0
        public UdpServerReceiver(UInt64 _serverId, UdpVerfiyReqDele _dele, uint _convCapacity, IUdpMsgHandler _handler, long _maxHeartBeatTime)
        {
            serverId   = _serverId;
            verifyDele = _dele;
            sessionMgr = new UdpServerSessionMgr(_serverId, _convCapacity, _handler, _maxHeartBeatTime);

            kcpVerifyReqBytes    = System.Text.Encoding.Default.GetBytes(KcpDef.KcpVerifyReq);
            kcpVerifyReqTotalLen = kcpVerifyReqBytes.Length + KcpDef.KcpVerifyTokenLen;
        }