예제 #1
0
        /// <summary>
        ///     Override to provide new behavior for receipt of all PosiStageNet packets
        /// </summary>
        protected virtual void OnPacketReceived(PsnPacketChunk packet)
        {
            switch (packet.ChunkId)
            {
            case PsnPacketChunkId.PsnInfoPacket:
            {
                var infoPacket = (PsnInfoPacketChunk)packet;
                OnInfoPacketReceived(infoPacket);
                InfoPacketReceived?.Invoke(this, infoPacket);
            }
            break;

            case PsnPacketChunkId.PsnDataPacket:
            {
                var dataPacket = (PsnDataPacketChunk)packet;
                OnDataPacketReceived(dataPacket);
                DataPacketReceived?.Invoke(this, dataPacket);
            }
            break;

            case PsnPacketChunkId.UnknownPacket:
            {
                var unknownPacket = (PsnUnknownPacketChunk)packet;
                OnUnknownPacketReceived(unknownPacket);
                UnknownPacketReceived?.Invoke(this, unknownPacket);
            }
            break;

            default:
                throw new ArgumentOutOfRangeException();
            }
        }
예제 #2
0
 public void ReceivedData(byte[] buffer)
 {
     DataPacketReceived?.Invoke(this, new CustomPack {
         Text = Encoding.Default.GetString(buffer)
     });
 }