1

我儿子有一个 MacOS 9 盒子,他从基于 Leopard 的 MacBook 向其发送远程 AppleEvents。有什么方法可以通过 TCP/IP 从我的 Windows 7 Toshiba 以编程方式发送远程 AppleEvents?

4

3 回答 3

2

如果有帮助,Apple 事件会通过 TCP/UDP 在端口 3031 上发送

从高层来看,苹果事件有四个部分:

  1. 数据聚合 API(数据请求被放入不透明的内存结构中)。就目前而言,这个 API 冗长且使用起来很痛苦。谢天谢地,您可以使用具有更好数据聚合工具的语言
  2. 转换/序列化 - 将不透明的数据结构转换为可以序列化并传输到另一个进程的东西,对于相同的机器事件,这可能是空序列化
  3. 传输 数据从一个进程传输到另一个进程。单台机器可能只是将数据的副本排入队列。远程机器通过网络协议进行传输,该协议可以是 TCP/IP(但它也可以与 AppleTalk 一起使用)并且可能需要身份验证。
  4. 反序列化/转换

您很可能需要执行步骤 2、3 和 4。如果您不关心获取任何信息,则可以跳过 4,因为已发送事件中的标志之一是“无回复”。

AE 数据模型中的类型相对较少。我会在你的 OS X 机器上编写代码来发送每种类型,并在发送数据包时对其进行逆向工程。为了加快进程,您可能希望在 OS X 机器上使用appscript,它可以让您从 Ruby、Objective C 或 Python 发送事件。

于 2009-07-08T12:48:29.573 回答
1

如果你在谈论咆哮通知,有图书馆可以使用它。例如,这里是ruby​​ 的咆哮库

于 2009-07-08T12:23:54.937 回答
1

使用 tcpdump 或 Wireshark 之类的工具嗅探 MacBook 和 MacOS 9 机器之间的数据包。这将告诉您 AppleEvent 在网络上的样子。

然后使用您在 Windows 上选择的编程环境复制这些数据包。

我建议将您编写的代码打包到一个库中,以便在其他应用程序中重用。

祝你好运 - 这可能很棘手!

于 2009-07-08T12:16:18.130 回答