2011-04-21 68 views
4

我需要在Mac OS X上编写一个应用程序,该应用程序将远程命令发送给Windows应用程序以执行某些任务。电脑将坐在同一个子网上,Mac和Windows电脑都有固定IP。Mac应用程序与Windows应用程序交谈的最佳方式

实际发送的数据只是一些字符串或布尔参数,因此Windows应用程序可以执行特定的任务。

有人会写Windows应用程序,我会写Mac应用程序。

我可以在开发人员的文档中找到关于Mac到Mac的通信,但没有任何关于我需要的信息。

达到此目的的最佳方法是什么?什么协议最适合这个?

+0

你是说,在TCP或UDP之上的东西? – Santa 2011-04-23 00:36:42

+0

我们最后使用了TCP,文档似乎也很稀少。然后我在谷歌代码中找到了GCDAsyncSocket并使用它。 – T1000 2011-07-19 02:44:15

回答

0

有(至少)在这里两个单独的问题:

  • #1你是怎么发现的其他应用程序。 Bonjour是一种可能性,就像本地广播一样,明确地配置对等主机名称也是一种可能性。
  • #2是您找到它时如何与其他机器通信。对于这部分,我建议:
    • 一)使用TCP而不是UDP(在大多数情况下),所以你不必担心重发&测序
    • B),而不是你自己发明的客户端 - 服务器在TCP之上的协议,使用现有的协议。我听说有一种叫做“HTTP”的东西开始流行起来...
+0

谢谢。大卫。我们在最后使用了带有谷歌代码GCDAsycnSocket的TCP。 – T1000 2011-07-19 02:45:22

1

看看卓悦SDK适用于Mac和Windows:http://developer.apple.com/opensource/

+0

感谢您的回复。我曾考虑过卓悦。但是,Windows端编程是外包的。要求他现在研究另一个框架会增加成本和项目时间。我希望找到一个Mac和Windows都能理解的更为广泛的标准。还有其他协议可用吗? – T1000 2011-04-21 09:40:57

+0

我也刚刚阅读了Bonjour上的常见问题解答,并指出“Bonjour本身就是一种发现使用各种协议的网络服务的方法:例如,用于iChat或IPP的Jabber打印。也就是说,Bonjour DNS数据包可以包含非常少量的“文本”信息,例如iChat使用的在线信息。“由于我们可以使用固定IP,所以现在零配置发现对我们来说是一种矫枉过正。 – T1000 2011-04-21 11:02:07

+1

那么,如果Windows方面外包并且开发人员已经决定他将要做什么,那么这会将您的选择限制为只有一个:实现您选择的任何协议的一方。 – 2011-04-23 00:50:48

0

你能不能使用UDP来进行消息广播到网络上?您的应用程序(无论它们是在Mac还是Windows上运行)都可以收听消息并根据需要处理它们。

+0

谢谢。保罗。我们尝试过UDP,但后来决定使用TCP代替。 – T1000 2011-07-19 02:45:59

相关问题