public bool BroadcastPacket(byte[] data, Channel channelNo, PacketFlags flag = PacketFlags.Reliable) { byte[] temp; if (data.Length >= 8) { temp = _blowfish.Encrypt(data); } else { temp = data; } var packet = new ENet.Packet(); packet.Create(temp); _server.Broadcast((byte)channelNo, ref packet); return(true); }
public bool HandlePacket(Peer peer, ENet.Packet packet, Channel channelId) { var data = new byte[packet.Length]; Marshal.Copy(packet.Data, data, 0, data.Length); // if channel id is HANDSHAKE we should initialize blowfish key and return if (channelId == Channel.CHL_HANDSHAKE) { return(HandleHandshake(peer, data)); } // every packet that is not blowfish go here if (data.Length >= 8) { // TODO: each user will have his unique key data = _blowfish.Decrypt(data); } return(HandlePacket(peer, data, channelId)); }