Esempio n. 1
0
 public static void Raise(this OnClientPacketReceived @event, object sender, ClientPacketEventArgs e)
 {
     if (@event != null)
     {
         @event(sender, e);
     }
 }
Esempio n. 2
0
        /// <summary>
        /// Process a single incoming packet. Returns whether we should keep processing packets or not.
        /// </summary>
        private bool ProcessListenerPacket(Buffer buffer, IPEndPoint ip)
        {
#if DEBUG
            Debug.Log("[Client][TcpProtocol:ProcessListenerPacket()] - Processing. Status: " + Status);
#endif

            // Verification step must be passed first
            if (Status == ConnectionStatus.Verifying)
            {
                BinaryReader reader = buffer.BeginReading();
                if (buffer.size == 0)
                {
                    return(true);
                }

                int    packetID = reader.ReadByte();
                Packet response = (Packet)packetID;

                if (response == Packet.ResponseID)
                {
                    if (VerifyResponseID(response, reader))
                    {
#if DEBUG
                        Debug.Log("[Client][TcpProtocol:ProcessListenerPacket()] - Verified. Id: " + Id);
#endif
                        return(true);
                    }
#if DEBUG
                    Debug.Log("[Client][TcpProtocol:ProcessListenerPacket()] - Not Verified.");
#endif
                    return(false);
                }
            }
            else if (Status == ConnectionStatus.Connected)
            {
#if DEBUG
                Debug.Log("[Client][TcpProtocol:ProcessListenerPacket()] - Packet received.");
#endif
                if (OnClientPacketReceived != null)
                {
                    OnClientPacketReceived.Invoke(buffer, ip);
                }
            }
#if DEBUG
            Debug.Log("[Client][TcpProtocol:ProcessListenerPacket()] - Processed. Status: " + Status);
#endif
            return(true);
        }