2013-07-19 45 views
1

這不是關於「網絡編程」的說法,而是關於如何處理客戶端運行位於服務器上的應用程序並且網絡連接暫時關閉時出現的問題。如何處理Clarion中的網絡連接問題?

我的背景是在.Net中。而我的理解是,如果我運行位於另一臺機器上的應用程序,則遠程機器上的.exe會被加載到客戶機器上的內存中......這意味着在.Net中,我可以在網絡中捕獲異常下來並處理它。

我對Clarion還不太瞭解,但是有一個銷售點系統,當網絡出現故障時,這個系統總是會在使用Clarion編寫時崩潰。程序員向我保證,當網絡出現故障時,我不再連接到駐留在服務器上的應用程序(我不同意這一點,因爲如前所述,我相信該應用程序已經存在於客戶端的內存中。)

這個問題可以在Clarion應用程序中處理,更重要的是,如果是這樣的話,那麼您可以如何處理它?

編輯:另外,我可以看到如果有一個問題,如果還沒有被加載到內存中的某個特定的DLL正在被訪問,但爲了這個問題的目的,假設情況並非如此。我可以在任何時候通過拔掉網線來解決這個問題,所以我非常確信這不是問題(或者至少不是99%的時間)。

回答

3

應用程序可以在客戶端上的內存,但是當網絡出現故障時數據連接可能會丟失。如果沒有在代碼中處理,客戶肯定會崩潰。 NetTalk儘管功能強大,但可能並非您在這種情況下所需要的。

後任何GetSet/NextAddPut等,你應該檢查錯誤:

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

您還可以檢查FileError(),這將給你的文件有關的錯誤的更多詳細信息。

+0

謝謝。這更符合我所認爲的問題。我想我會親自爲這些檢查錯誤的操作創建一個包裝函數,以便我不必擔心在整個程序中記住這些操作。 – BVernon

2

是的,Capesoft.com上有一個很好的模板集/擴展模塊,名爲NetTalk。我已經寫了很多以網絡爲中心的應用程序,它完美的工作。示例顯示如何編寫Web服務器,Mailclient等。我想,很多基本的網絡功能都能滿足您的需求。

玩得開心, 米克

+0

+1的建議 – BVernon