![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Слишком много коннектов... [D6, Win95/98, WinXP]
DNT © (2003-11-12 11:33:00)
Программа использует ClientSocket для соединения с сервером.
Если прога не подключена к серверу, то она с интервалом в 5 секунд пытается подконнектится.
Если очень много попыток коннекта, то win перестает обрабатывать другие запросы. И из инета ничего не грузится.
Видимо я не правильно обрабатываю ошибки ClientSocket:
....
ErrorCode:=0;
ClientSocket.Socket.Disconnect(Socket.Handle);
...
или так пробовал
...
ErrorCode:=0;
ClientSocket.Close;
...
А коннект делаю таким способом:
if ClientSocket.Socket.Connected=false then
begin
try
ClientSocket.open;
except
form1.Caption :="что делать?!";
end;
end;
Подскажите, что не так.
Tnx ;)
Digitman (2003-11-12 12:26:00) [1]
и как это все с таймером связано ?
те самые упомянутые тобой 5 секунд огромное значение имеют !
не вижу ничего, что хоть сколь-либо проясняло ситуацию с обработкой событий таймера
DNT (2003-11-12 12:19:00) [2]
Я написал код коннекта и обработки ошибок.
Digitman (2003-11-12 12:12:00) [3]
> DNT
детский сад) ... "помогает", "не помогает")
сейчас в угадайку будем играть, что ты там понаворочал в коде своем
DNT (2003-11-12 12:01:00) [4]
Я же говорю, сначала это помогает а затем - нет.
Digitman (2003-11-12 11:50:00) [5]
> Краем ухо слашал, что нужно дисконнект по другому сделать,
> но не знаю как.
именно так :
ErrorCode:=0;
Socket.Close;
DNT (2003-11-12 11:42:00) [6]
Значит ошибка возникала отчего-то другово или где-то в другом месте.
Т.е. сначала ErrorCode 10061, а потом 10055 и инет уже не работает.
Краем ухо слашал, что нужно дисконнект по другому сделать, но не знаю как.
Digitman (2003-11-12 11:37:00) [7]
> или так пробовал
> ...
> ErrorCode:=0;
> ClientSocket.Close;
> ...
именно этот и есть правильный вариант обработки события OnError() при условии, что ошибка возникла именно как следствие недоступности сервера на момент выполнения Open()