public static CommandPackage RecieveCommand(Socket socket)
        {
            var            buffer  = new byte[HeaderConstants.HeaderLength];
            CommandPackage package = new CommandPackage();

            RecieveData(socket, HeaderConstants.HeaderLength, buffer);
            package.DecodeHeader(buffer);
            var bufferMessage = new byte[package.DataLength];

            RecieveData(socket, package.DataLength, bufferMessage);
            package.DecodeMessage(bufferMessage);
            return(package);
        }