我必须在java中创建一个日志服务器,一个任务是发送压缩的数据。现在我用纯文本逐行发送它,但我必须压缩它。 服务器处理“HTTP like”请求。例如,我可以获得发送“GET xxx.log”的日志。这将建立到服务器的TCP连接,带有标头和日志的服务器响应,并关闭连接。客户端逐行读取并分析每个LOG条目。 我尝试了一些没有成功的方法。 我的主要问题是我不知道每一行的结束位置(在客户端大小)。 有什么想法吗?
答案 0 :(得分:3)
在服务器上使用GZIPOutputStream,在客户端使用GZIPInputStream,其周围有一个InputStreamReader,周围有一个BufferedReader。然后只读行。
答案 1 :(得分:1)
最有意义的是这样的事情
答案 2 :(得分:0)
您可以查看HTTP Range标头。客户端可以请求一系列字节,服务器将只返回那些字节。使用GZIP压缩。
您可以从客户端调用一个操作,该操作将在请求部分日志之前提供带字节范围的索引。
HTTP标头有很多开销,因此您可以考虑一次发送100行或更多。
最后,查看分块传输编码,它允许您将数据流式传输到客户端。