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); }
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); }
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); }