Пример #1
0
        /// <summary>
        /// Game Connection Packet List Manager.
        /// </summary>
        protected void GameListener(object args)
        {
            if (State == ConnectionState.Connected && StreamGame != null && StreamLocal != null) {
                try {
                    if (StreamGame != null && StreamGame.CanRead && StreamGame.DataAvailable) {
                        //Byte to Store Server Packets.
                        var data = new Byte[8192];

                        //Get Game Server Packets.
                        var length = StreamGame.Read(data, 0, data.Length);

                        if (length > 0) {
                            //Send Packet to Client if Needed.
                            if (StreamLocal.CanWrite) { StreamLocal.Write(data, 0, length); }

                            //Stack the Intercepted Packet.
                            PacketChangedCall.BeginInvoke(data.Redim(length), PacketSource.Server, null, PacketChangedCall);

                            //Initialize the Client Listener, if Needed.
                            if (TMClientListener != null) { return; }
                            TMClientListener = new System.Threading.Timer(ClientListener, null, 0, 100);
                        }
                    }
                }
                catch (IOException) { Disconnect(); }
            }
        }
Пример #2
0
        /// <summary>
        /// Client Connection Packet List Manager.
        /// </summary>
        protected void ClientListener(object args)
        {
            try {
                if (StreamLocal != null && StreamLocal.CanRead && StreamLocal.DataAvailable) {
                    //Byte to Store Client Packets.
                    var data = new Byte[8192];

                    //Get Client Local Packets.
                    var length = StreamLocal.Read(data, 0, data.Length);

                    if (length > 0) {
                        //Send Packet to Server if Needed.
                        if (StreamGame.CanWrite) { StreamGame.Write(data, 0, length); }

                        //Stack the Intercepted Packet.
                        PacketChangedCall.BeginInvoke(data.Redim(length), PacketSource.Client, null, PacketChangedCall);
                    }
                }
            }
            catch (IOException) { Disconnect(); }
        }