public override bool Handle(byte[] firstPacket, int length, Socket socket, object state)
 {
     if (socket.ProtocolType != ProtocolType.Udp)
     {
         return false;
     }
     if (length < 4)
     {
         return false;
     }
     Listener.UDPState udpState = (Listener.UDPState)state;
     IPEndPoint remoteEndPoint = (IPEndPoint)udpState.remoteEndPoint;
     UDPHandler handler = _cache.get(remoteEndPoint);
     if (handler == null)
     {
         handler = new UDPHandler(socket, _controller.GetAServer(IStrategyCallerType.UDP, remoteEndPoint), remoteEndPoint);
         _cache.add(remoteEndPoint, handler);
     }
     handler.Send(firstPacket, length);
     handler.Receive();
     return true;
 }
Esempio n. 2
0
        public bool Handle(byte[] firstPacket, int length, Socket socket, object state)
        {
            if (socket.ProtocolType != ProtocolType.Udp)
            {
                return(false);
            }
            if (length < 4)
            {
                return(false);
            }
            Listener.UDPState udpState       = (Listener.UDPState)state;
            IPEndPoint        remoteEndPoint = (IPEndPoint)udpState.remoteEndPoint;
            UDPHandler        handler        = _cache.get(remoteEndPoint);

            if (handler == null)
            {
                handler = new UDPHandler(socket, _config.GetCurrentServer(), remoteEndPoint);
                _cache.add(remoteEndPoint, handler);
            }
            handler.Send(firstPacket, length);
            handler.Receive();
            return(true);
        }