private void Send(BasePacket packet, int player = -1)
        {
            var internalPacket = new InternalPacket();
            var packetType     = packet.GetType();
            var packetId       = _packetTypes.FirstOrDefault(x => x.Value == packetType).Key;

            internalPacket.Write(packetId);
            packet.Encode(internalPacket);
            internalPacket.Send(player);
        }
Ejemplo n.º 2
0
        public override bool SendRequest(BasePacket packet)
        {
            packet.Encode();

            if (socketHandlers.TryGetValue(packet.Serial, out MTCPSocketHandler handler) == false)
            {
                return(false);
            }

            Send(handler.workSocket, packet.Buffer);

            return(true);
        }
Ejemplo n.º 3
0
        public override bool SendRequest(BasePacket packet)
        {
            if (handler.workSocket.Connected == false)
            {
                return(false);
            }

            packet.Encode();
            packet.Buffer.CopyTo(handler.buffer, 0);

            SocketAsyncEventArgs args = new SocketAsyncEventArgs()
            {
                UserToken = handler
            };

            args.SetBuffer(handler.buffer, 0, packet.Buffer.Length);
            args.Completed += OnSendComplate;

            handler.workSocket.SendAsync(args);

            return(true);
        }