1

这不是关于“网络编程”,而是关于如何处理当客户端运行位于服务器上的应用程序并且网络连接暂时中断时出现的问题。

我的背景是.Net。我的理解是,如果我运行位于另一台机器上的应用程序,那么远程机器上的 .exe 会被加载到客户端机器上的内存中……这意味着,在 .Net 中,当网络出现异常时,我可以捕获异常下去处理它。

我对 Clarion 还不太了解,但是我使用的一个销售点系统在网络出现故障时总是会崩溃,这是用 Clarion 编写的。程序员向我保证,当网络出现故障时,我不再连接到他们驻留在服务器上的应用程序(我不同意这一点,因为如前所述,我相信应用程序已经在客户端的内存中。)

这个问题可以在 Clarion 应用程序中处理吗?更重要的是,如果可以,那么您将如何处理它?

编辑:另外,我可以看到如果尚未加载到内存中但正在访问的特定 dll 可能会出现问题,但出于此问题的目的,假设情况并非如此。我几乎可以随时通过拔掉网络电缆来解决这个问题,所以我非常有信心这不是问题(或者至少不是 99% 的时间)。

4

2 回答 2

3

应用程序可能在客户端的内存中,但是当网络出现故障时,数据连接可能会丢失。如果这没有在代码中处理,客户端肯定会崩溃。NetTalk 虽然非常健壮,但在这种情况下可能不是您想要的。

在任何Get, Set/Next, Add,Put等之后,您应该检查错误:

Get(File, Key)
IF ErrorCode()
  !Show error message and ask to retry, etc.
  Message('Error '&ErrorCode()&' - '&Error())
End

您还可以检查FileError()哪个将为您提供有关文件相关错误的更详细信息。

于 2013-10-12T02:42:24.307 回答
2

是的,Capesoft.com 上有一个不错的模板集/扩展,称为NetTalk。我已经用它编写了很多以网络为中心的应用程序,并且效果很好。示例展示了如何对 Webserver、Mailclient 等进行编程。我认为很多基本的网络功能都可以满足您的需求。

玩得开心,米克

于 2013-08-22T11:17:51.800 回答