这是一个有趣的组合,我需要在运行Windows XP Home的“设备”和互联网上的远程Linux服务器之间传输数据。让我逐条列出需要发生的事情:
看起来很简单呃?我正在考虑在Linux端使用Web服务,并认为在XP Home系统上做同样的事情会很好。但我的一些研究表明,XP Home无法解决传入的Web服务调用问题。也许这是错的?那么RESTful服务会如何呢?
BTW:由于这是一个新的应用程序,我可以在两端进行开发。 Windows端的C#和Linux端的Java。
赞赏我们的想法!
答案 0 :(得分:2)
由于应用程序是新的,如果您需要强大的实时数据共享,我建议您使用共享数据库。 您可以在其中一台主机上安装。
Web服务解决方案过于复杂。在两台计算机上使用相同的技术,您将能够使用所选语言的语言特定功能。
答案 1 :(得分:1)
为什么不在Windows端使用Java呢? Tomcat应该在任何XP上运行....这也会照顾你的其他问题。
答案 2 :(得分:1)
XP Home不包含IIS,但您可以安装其他Web服务器并在Windows端使用它。另一种选择是在两端进行一些简单的套接字编程,以方便从Linux机箱到XP机箱的请求。这种方法不能很好地扩展,但是如果你想快速将某些东西放在一起,那就可以了。
答案 3 :(得分:1)
如果你真的不需要实时。
低技术解决方案可能是让Windows设备定期轮询Linux机器。它可以发送数据并询问Linux盒子是否有任何需要。
这样可以避免在Windows端打开传入端口的需要(这可能是不可取的或不可能的)。
答案 4 :(得分:1)
在Windows服务器上安装Cygwin,安装SSH服务器并确保已安装rsync。在linux端通过cron作业调用rsync。无需编程/设计。
答案 5 :(得分:0)
好的,所以协议都是
有多少数据,有哪些类型?
首先想到的是,您只需在Windows机器上运行Web服务器并使用数据进行响应。我还没有构建一个,但有很多支持Windows的Web服务器。
答案 6 :(得分:0)
另一种解决方案是使用基于消息的内容,如JMS或XMPP。由于它是通过互联网,XMPP可能更适合。
XMPP聊天消息可以用于握手,它有文件共享扩展来进行二进制传输。
此外,您可以使用您选择的语言来实现任一端,因为所有流行语言都有库。
编辑:据说,Tivo现在使用它从服务器向Tivo框发送发送更新。
答案 7 :(得分:0)
另一种解决方案是让XP端连接到java servlet并将数据作为JSON传递。这可能是最简单的方法,因为它要求你只需要保护java端并且JSON很容易解析,并且在我的测试中它最终比我使用Web服务更快地满足我的需求。
如果你需要有java端请求,那么只需要监听一个端口,只是为了通知需要发送数据,然后将数据发送到servlet。它将是XP端的一个简单服务器,因为它不传输任何数据,只是收到一条小信息('发送')。