2

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

问题

连接两个应用程序:

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

Application2 是连接的客户端。

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

在调试器中检查 Application1 表明这error 102 Lost ConnectionLastErrorCode

设想

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

我可以让套接字工作,但我无法让套接字成功断开连接然后重新连接到同一个本地服务器。该示例没有说明应该如何进行。该文档是我认为稀疏的。

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

4

1 回答 1

3

在不查看您的代码的情况下,我相信您所要做的就是Error在两端实现事件,如果它触发,您关闭IPCSocket然后重新打开它(即Listen一端调用,另一端调用Connect) . 该Error事件实际上也充当“断开”事件。

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

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

于 2015-11-25T09:08:13.363 回答