私の息子はMacOS9ボックスを持っており、LeopardベースのMacBookからリモートのAppleEventを送信しています。プログラムで、Windows7ToshibaからTCP/IP経由でリモートAppleEventを送信できる方法はありますか?
3 に答える
それが役立つ場合、アップルイベントはTCP/UDPを介してポート3031で送信されます。
高レベルから、アップルイベントまでの4つの部分があります:
- データ集約API(データ要求は不透明なメモリ構造に配置されます)。このAPIは、現状では言葉が多く、使用するのが面倒でした。より優れたデータ集約ツールを備えた言語にアクセスできることを感謝します
- 変換/シリアル化-不透明なデータ構造は、シリアル化して別のプロセスに転送できるものに変換されます。同じマシンイベントの場合、これはnullシリアル化である可能性があります
- 移送データは、あるプロセスから別のプロセスに移送されます。単一のマシンは、おそらくデータのコピーをキューに入れているだけです。リモートマシンはネットワークプロトコルを介して転送されます。ネットワークプロトコルはTCP/IPである可能性があり(ただし、AppleTalkでも機能します)、認証が必要になる場合があります。
- デシリアライズ/変換
ほとんどの場合、手順2、3、および4を実行する必要があります。情報を取り戻す必要がない場合は、送信されたイベントのフラグの1つが「応答なし」であるため、4をスキップできます。
AEデータモデルには比較的少数のタイプがあります。私はあなたのOSXマシンにコードを書いて、すべてのタイプを送信し、送信時にパケットをリバースエンジニアリングします。プロセスを高速化するために、Ruby、Objective C、またはPythonからイベントを送信できるOSXマシンでappscriptを使用することをお勧めします。
あなたがうなり声の通知について話しているなら、それを使用するためのライブラリがあります。たとえば、これがルビーのうなり声ライブラリです
tcpdumpやWiresharkなどを使用して、MacBookとMacOS9ボックスの間でパケットをスニッフィングします。これにより、AppleEventがネットワーク上でどのように見えるかがわかります。
次に、Windowsで選択したプログラミング環境を使用して、これらのパケットを複製します。
作成したコードを、他のアプリケーションで再利用できるライブラリにまとめることをお勧めします。
頑張ってください-これはかなりトリッキーかもしれません!!