![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
10055
nickolayLI © (2002-10-16 20:52:00)Привет всем!
если сервер долго не отвечает, клиент выдает ошибку 10055
как лечить?
в обработчике OnError
прописано ErrorCode:=0;
TserverSocket, TClientSocket, Delphi 5
nickolayLI (2002-10-17 07:18:00) [1]ну сервер, ни как не ответит, так как он выгружен.
у меня сделано так, при запуске проги, стартует таймер, и в этом таймере стоит ClientSocket1.Open;
потом с onConnect стоит, если ми подключились к серверу то Timer1.Enabled:=False;
а в обработчике OnError(),
ErrorCode:=0
onDisconect();
Timer1.Enabled:=False;//если после подключения сервер орубился...
спасибо.
karbo (2002-10-17 05:33:00) [2]A что лечить?
Рассказ про TClientSocket и режим ctNonBlocking.
Устанавливаешь ClientType, Port, Address (ну или там по вкусу
Host, Service ).
Вызываешь TClientSocket.Open.
Далее одно из трех :
1. Происходит OnConnect. Радостно продолжаем свои дела.
2. Происходит OnError. Не повезло. Если " в обработчике OnError
прописано ErrorCode:=0", то системное сообщение про ошибку
будет выползать только при прогоне программы под отладчиком
delphi. При самостоятельном запуске exe-файла cообщение не будет
иметь место быть.
3. В течении длительного (1..100) сек ничего не происходит. Здесь
лучше 100 сек не ждать, а отловить ситуацию тамером (TTimer).
Раз в 0.1 сек проверять наступление OnConnect или OnError и если
такового за 4 к примеру секунды не произошло, больше не ждать ничего, а идти как после OnError.
Всё. Или надо было рассказывать, как заставить сервер ответить?