![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Проблема с повторным соединением
Rob © (2002-10-30 17:06:00)Добрый вечер!
Для соединения использую стандартные компоненты TClientSocket и TServerSocket.
На стороне клиента раз в несколько секунд вызывается по таймеру примерно такая процедура:
if ClientSocket1.Active=False then ClientSocket1.Open;
Это необходимо для того, чтобы определить жив сервер или нет.
Так вот, после нескольких перезапусков сервера (в Win98 примерно 20 раз, в NT/2k/XP примерно 50 раз) приложение-клиент может подсоедиться только после перезагрузки. Ничто другое пока реально не помогло.
Хотелось-бы услышать что-нибудь по сему поводу.
P.S. В onError на стороне клиента прописано:
ClientSocket.Socket.Disconnect(ClientSocket.Socket.SocketHandle);
как и рекомендовано.
Digitman (2002-10-30 18:00:00) [21]Приведи мне значение этого параметра в момент входа в обработчик данного события
Rob (2002-10-30 17:53:00) [22]Простите, а что подразумевается под анализом? Перевод сообщения об ошибке на русский? Если (как я и подозреваю) нет, то наставьте, пожалуйста на путь истинный.
Суть проблемы в моем понятии кроется именно в том, что она начинает себя проявлять ИМЕННО через примерно одинаковое число попыток.
Digitman (2002-10-30 17:46:00) [23]Ну где анализ-то ? параметра ErrorCode ?
Rob (2002-10-30 17:41:00) [24]Asynchronous socket error 10061.
В обработчике onError клиентской стороны:
procedure TMainForm.ClientSocket1Error(Sender: TObject;
Socket: TCustomWinSocket; ErrorEvent: TErrorEvent;
var ErrorCode: Integer);
begin
ErrorCode:=0;// Сейчас заккоментировано:)
ClientSocket1.Socket.Disconnect
ClientSocket1.Socket.SocketHandle);
ClientSocket1.Close;
Panel_conn.Color:=clRed;//Сигнализирует об "обрыве" соединения
end;
Digitman (2002-10-30 17:28:00) [25]onError() - ну так С КАКИМ КОДОМ ОШИБКИ-то ? Он для Пушкина что ли возвращается параметром в этом событии ? Или таки - чтобы ТЫ его проанализировал и определил источник отказа ?
Rob (2002-10-30 17:24:00) [26]Вот и я хотел-бы это прояснить для себя. После указанного числа удачных попыток соединения на стороне клиента упорно вызывается onError. Серверная часть при этом продолжает нормально работать, поскольку другие программы-клиенты, подсоединяющиеся к ней и не исчерпавшие "лимита удачных подключений":) свободно коннектятся.
Digitman (2002-10-30 17:13:00) [27]>>приложение-клиент может подсоедиться только после перезагрузки
И что мешает сделать это без перезагрузки ?