2013-07-19 3 views
1

Речь идет не о «сетевом программировании», а о том, как справиться с проблемой, возникающей, когда клиент запускает приложение, расположенное на сервере, и сетевое соединение временно отключается.Как справиться с проблемами подключения к сети в Clarion?

Мой фон в .Net. И я понимаю, что если я запустил приложение, расположенное на другой машине, то .exe с удаленного компьютера загрузится в память на клиентской машине ... что означает, что в .Net я мог бы поймать исключение, когда сеть идет вниз и обрабатывает его.

Я еще мало знаю о Clarion, но есть система Point Of Sale, которую я использую, которая всегда сбой, когда сеть опускается, что написано в Clarion. Программист уверяет меня, что когда сеть опускается, что я больше не подключен к их приложению, которое находится на сервере (я не согласен с этим, потому что, как упоминалось ранее, я считаю, что приложение уже находится в памяти на клиенте.)

Может ли эта проблема обрабатываться в приложении Clarion, и что еще более важно, если да, то как вы можете ее обработать?

EDIT: Кроме того, я вижу, как может возникнуть проблема, если к какой-либо конкретной DLL, которая еще не загружена в память, к ней обращаются, но для целей этого вопроса предполагают, что это не так. Я могу решить эту проблему практически в любое время, отключив сетевой кабель, поэтому я уверен, что это не проблема (или, по крайней мере, не 99% времени).

ответ

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(), который даст вам более подробную информацию об ошибках, связанных с файлами.

+0

Спасибо. Это больше похоже на то, что я думаю о проблеме. Я думаю, что лично создаю функцию-оболочку для каждой из этих операций, которая проверяет наличие ошибок, так что мне не нужно было беспокоиться о том, чтобы запомнить это во всей программе. – BVernon

2

Да, у Capesoft.com есть хороший набор шаблонов/Расширение, называемый NetTalk. Я написал много приложений Net-centric с этим, и он отлично работает. Примеры показывают, как программировать веб-сервер, Mailclient и т. Д. Я думаю, что многие основные сетевые функции будут соответствовать вашим потребностям.

Весело, Мик

+0

+1 за предложение – BVernon

Смежные вопросы