Пример #1
0
        protected void HandleMessageType(NetIncomingMessageType type, IncomingMessageEventHandler handler)
        {
            // NetIncomingMessageType.Data is reserved
            if (type == NetIncomingMessageType.Data)
            {
                Logger.Log("GamePeer::HandleMessageType: \"NetIncomingMessageType.Data\" is a reserved message type!");
                return;
            }

            if (!incomingMessageHandlers.ContainsKey(type))
            {
                incomingMessageHandlers[type] = null;
            }

            incomingMessageHandlers[type] += handler;
        }
Пример #2
0
        private void PacketReceive(IAsyncResult ar)
        {
            IPEndPoint ep = null;

            byte[] data    = client.EndReceive(ar, ref ep);
            string message = Encoding.UTF8.GetString(data);

            // make invoking thread-safe
            IncomingMessageEventHandler handler = IncomingMessage;

            if (handler != null)
            {
                handler(this, new IncomingMessageEventArgs(message, ep));
            }

            client.BeginReceive(PacketReceive, null);
        }