当你想在你的代码中找到一个错误时,这很难;当你认为你的代码是不会有错误时,这就更难了。

Java-如何在两台计算机之间传递大量数据

admin 98℃
从一台计算机到另一台不在同一局域网中的计算机传输大量数据的可能选项是什么?数据量大约是100MB解压缩和2MB压缩?另一个要求是,当我为此(使用c)创建服务器时,java客户机应该能够使用它。

  • WCF支持这样的东西吗?但如果Java客户端无法使用它,我就不感兴趣了。
  • 这里还有什么其他的策略?
我只会使用一些类似HTTP或FTP的东西,因为会有很多现有的库来做它,而且你几乎保证不会有兼容性问题。对于这些协议来说,2MB并不是一个不合理的大数据量。

这是一个有趣的问题。这个问题很容易回答。但有趣的是,这种问题是新的,它们以前不存在。让我解释一下,但首先我会回答您的问题:

您应该使用老式的tcp流创建服务器和客户端。为了不占用腰部带宽,您需要以某种方式压缩流,这里使用您可以找到的最常见的压缩算法之一(任何人都说zip?)现在你有了一个独立于语言的协议。任何语言的客户都可以工作,任务完成。同时,为了保持它的跨平台性,不要选择最好的压缩,选择最常见的压缩(它将足够好)。

现在,为了解释为什么这类问题很有趣,他们在很大程度上展示了面向对象编程的一些内容。人们理解和使用巨大的框架,并询问这个或那个框架是否能为他们执行这个或那个简单的任务。在这里,我们失去了根基,我们失去了事物的内部运作,它不是用锤子而是用核导弹来敲打钉子。它超出了目标,而且会产生巨大的应用程序,占用空间巨大,性能往往很差。

我相信自从oop被完全采用以来,这个问题的数量已经增加了。就像新程序员只想学习这些新的大框架,而这个框架模糊了世界的视野。大型框架绝对没有错,它们很棒,但我相信在掌握基本知识之前就开始使用它们是错误的。这就像学习使用美国宇航局的航天飞机飞行,而不是学校版的塞斯纳私人飞机。

在C语言中,可以将对象序列化为XML并进行传输,在另一端,可以将XML反序列化回对象。

就文件大小而言,可以压缩或7z.格式传输,在解析XML之前,在客户端对其进行解压缩。

wcf支持soap并包括xhttp的可选json序列化。还有其他机制,但它们是面向ms的。您将很容易使用您创建的服务。但是,您必须考虑如何对数据进行编码,因为它将以非二进制数据友好的方式(xml/json)连接。

您可能希望创建一个简单的http处理程序,该处理程序可以使用适当的mime头等直接将数据作为zip返回。然后,您应该可以使用java客户机直接命中它。

转载请注明:我的代码 » Java-如何在两台计算机之间传递大量数据