コード例 #1
0
ファイル: PlayerEventThread.cs プロジェクト: pzaps/Server
 private void ProcessQueuedEvents()
 {
     while (!quitFlag) {
         if (eventQueue.Empty()) {
             resetEvent.WaitOne();
             resetEvent.Reset();
         }
         if (eventQueue.Empty() == false) {
             activeEvent = eventQueue.Dequeue();
             Network.MessageProcessor.ProcessData(ownerClient, activeEvent.Data);
         }
     }
 }
コード例 #2
0
ファイル: PlayerEventThread.cs プロジェクト: SupaFresh/Server
 private void ProcessQueuedEvents()
 {
     while (!quitFlag)
     {
         if (eventQueue.Empty())
         {
             resetEvent.WaitOne();
             resetEvent.Reset();
         }
         if (eventQueue.Empty() == false)
         {
             activeEvent = eventQueue.Dequeue();
             Network.MessageProcessor.ProcessData(ownerClient, activeEvent.Data);
         }
     }
 }
コード例 #3
0
ファイル: PlayerEventQueue.cs プロジェクト: blastboy/Server
 public void Enqueue(PlayerEvent playerEvent)
 {
     queue.Enqueue(playerEvent);
 }
コード例 #4
0
ファイル: PlayerEventThread.cs プロジェクト: SupaFresh/Server
 public void AddEvent(PlayerEvent playerEvent)
 {
     eventQueue.Enqueue(playerEvent);
     resetEvent.Set();
 }
コード例 #5
0
ファイル: PlayerEventQueue.cs プロジェクト: pzaps/Server
 public void Enqueue(PlayerEvent playerEvent)
 {
     queue.Enqueue(playerEvent);
 }
コード例 #6
0
ファイル: PlayerEventThread.cs プロジェクト: pzaps/Server
 public void AddEvent(PlayerEvent playerEvent)
 {
     eventQueue.Enqueue(playerEvent);
     resetEvent.Set();
 }
コード例 #7
0
ファイル: Client.cs プロジェクト: ScruffyKnight/PMU-Server
        void Tcp_DataReceived(object sender, Tcp.DataReceivedEventArgs e)
        {
            try {
                bool compression = false;
                if (e.CustomHeader[0] == 1) {
                    compression = true;
                }
                bool encryption = false;
                if (e.CustomHeader[1] == 1) {
                    encryption = true;
                }
                byte[] packetBytes = e.ByteData;
                if (compression) {
                    packetBytes = packetModifiers.DecompressPacket(packetBytes);
                }
                if (encryption) {
                    packetBytes = packetModifiers.DecryptPacket(packetBytes);
                }
                if (e.CustomHeader[2] == 1) {
                    // This was a packet list, process it
                    int position = 0;
                    while (position < packetBytes.Length) {
                        int segmentSize = ByteEncoder.ByteArrayToInt(packetBytes, position);
                        position += 4;
            #if EVENTTHREAD
                        PlayerEvent playerEvent = new PlayerEvent(ByteEncoder.ByteArrayToString(packetBytes, position, segmentSize));
                        eventThread.AddEvent(playerEvent);
            #else

                        MessageProcessor.ProcessData(this, ByteEncoder.ByteArrayToString(packetBytes, position, segmentSize));
            #endif
                        position += segmentSize;
                    }
                } else {
            #if EVENTTHREAD
                    PlayerEvent playerEvent = new PlayerEvent(PMU.Core.ByteEncoder.ByteArrayToString(packetBytes));
                    eventThread.AddEvent(playerEvent);
            #else
                    MessageProcessor.ProcessData(this, PMU.Core.ByteEncoder.ByteArrayToString(packetBytes));
            #endif
                }
            } catch (Exception ex) {
                Exceptions.ErrorLogger.WriteToErrorLog(ex, "Tcp_DataRecieved");
            }
        }