![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Вопрос по сокетам [D5, Win2k]
sapsi © (2003-04-10 10:36:00)Добрый день
Ситуация такая.
При отладке клиентского приложения с Clientsocket в среде Делфи при ошибке на стадии компиляции происходит разррыв соединения, который не отлавливается серверной частью Serversocket, уже запущенной ранее.
Есть ли возможность отловить любые ошибки.
Везде в серверной части пишу все через try except
На clienterror делаю Errorcode:=0
Но серверная часть, запущенная не под Делфи а как обычный екзешник, все равно падает, но не при обрыве соединения, а при следующей попытке соединиться с ней после обрыва.
Спасибо.
Digitman (2003-04-11 08:17:00) [1]
> sapsi
Если пртиложение "падает", то уже ничем не поможешь.
Умерла так умерла)
VID (2003-04-11 00:14:00) [2]делай в сервере так:
на onClientError, onClientDisconnect пиши
Server.Socket.Disconnect(Socket.SocketHandle);
try CloseHandle(Socket.Handle); except end;
try FreeAndNil(Socket); except end;
а то всякое бывает :)
sapsi (2003-04-10 16:32:00) [3]но если при рушится клиентское соединение с сервером, то почему нельзя просто обработать ошибку этого соединения.
С серверной частью ведь ничего не происходит.
Digitman (2003-04-10 13:18:00) [4]
> Есть ли возможность отловить любые ошибки
нет.
если "программа выполнила недопустимую операцию и будет закрыта", то это не "отловишь"
sapsi (2003-04-10 12:23:00) [5]имеется ввиду, когда программа работает под управлением Делфи
Digitman (2003-04-10 11:02:00) [6]
> при ошибке на стадии компиляции происходит разррыв соединения
на стадии компиляции никакого соединения не существует и существовать не может
нечему разрываться-то)
sapsi (2003-04-10 10:39:00) [7]P.S.
Единственный выход пока, на clienterror делать serversocket.close
затем serversocket.open,
но это отрубит всех клиентов.