Xojo IPCSocket 连接多次

Xojo IPCSocket connecting multiple times

以前做过一些网络编程和IPC编程,但是没有在Xojo里做过。我有 C++ 和 Python 经验,但我对 Xojo 还很陌生,很迷茫。

问题

连接两个应用程序:

Application1和Application2通过IPCSocket连接。 Application1 是正在侦听的服务器。

Application2 是连接的客户端。

当Application2断开连接,然后重新启动时,它将不再连接到Application1。

在调试器中检查 Application1 显示 error 102 Lost ConnectionLastErrorCode

场景

我们在 Xojo 中有一个应用程序。我一直在关注包含的 IPCSocket 示例项目以及使用 IPCSocket.

的文档

我可以让套接字工作,但我无法让套接字成功断开连接然后重新连接到同一本地服务器。该示例没有给出任何关于应该如何完成的指示。我认为文档是稀疏的。

是否可以断开 Xojo IPCSocket 并重新连接,类似于通过 TCP 连接服务器的方式?或者...我是否在浪费时间尝试这条路线,我应该探索另一种 IPC 方式吗?

不看你的代码,我相信你所要做的就是在两端实现 Error 事件,如果它触发,你关闭 IPCSocket 然后重新打开它(即在一端调用 Listen,在另一端调用 Connect)。 Error 事件实际上也充当 "disconncted" 事件。

此外,在您可以再次 Listen 之前,您必须删除指定 Path 处的文件,否则 Listen 将导致错误(至少在 OS X).

我使用 IPCSocket 的方式,连接应用程序 (app2) 始终由侦听器 (app1) 在异步模式下使用 Shell class 作为辅助应用程序启动 ( theShell.Mode = 1)。在这种情况下,您还可以通过实施 Shell class' Completed 事件来注意到助手应用程序是否已退出。如果您的服务器 (app1) 退出或崩溃,Shell 也会自动退出 app2。因此,结合使用 Shell 和 IPCSocket 并实现上述事件,是确保您完全控制两端生命周期的最安全方法。