![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
не отрабатывает try clientsocket.Open; finally [D7, WinXP]
redlord © (2005-03-23 19:48:00)всем привет
народ подскажите почему в приведенном примере,
вслучае неудачного коннекта, молчит бипер
а вот сообщение об ошибке выдается
(10061 комп отверг зпрос на подключение)
client:=Tclientsocket.Create(nil);
client.Host:='127.0.0.1';
client.Port:=80;
client.ClientType:=ctblocking;
try client.Open; finally beep; end;
Virus.exe (2005-03-27 23:26:00) [1]У меня примерно то же самое...Там вся фишка в том,что при запуске
кода внутри дельфи,все ошибки показываются,а конструкцииtry...except...finally...end;
не срабатывают.Ты откомпиль прогу,а потом запусти сам exe.Даю свой кабель от выделенки на отсечение,что комп бипнет...
redlord (2005-03-27 01:53:00) [2]похоже в моей версии просто отключена возможность перехвата сообщений об ошибках как ее включить ???
Digitman (2005-03-25 08:22:00) [3]
> redlord (24.03.05 22:11) [11]
не верю, что при закрытом.
попытка выполнить передачу по неактивному (не установленному на этот момент) соединению обязательно приведет к исключению, вне зависимости от режима работы гнезда - блокирующего или неблокирующего
redlord (2005-03-24 22:11:00) [4]похоже что и правду чтото гдето отключено
потомучто ниже приведенный код без всяких
исключений (передает) данные даже при закрытом
слиентском сокете
try
//clientsocket1.Open;
for n:=1 to 100 do
begin
sleep(500);
clientsocket1.Socket.SendText('12345');
memo1.Lines.Add(inttostr(n));
application.ProcessMessages;
if n = 10 then
serversocket1.Socket.Connections[0].Close;
end;
except
on e:exception do
ShowMessage('E R R O R' + e.classname + ' ' + e.message);
end;
Digitman (2005-03-24 16:18:00) [5]
> и не разу туда управление небыло передано
а хоть где-нибудь (в ином месте) ловил ВР ?
если ловил, то с галками все в порядке - тгочно так же и здесь поймаешь, как я поймал
redlord (2005-03-24 16:01:00) [6]я тоже ставил ешо до отправки мыла
и не разу туда управление небыло передано
может в компиляторе какие галки стоят или наоборот не стоят ??
Digitman (2005-03-24 15:33:00) [7]
> на мыло исходник бросил 10кило
мыло я твое получил, ставлю БП на строчке on e:exception do и прекрасно этот ВР ловлю, как и ожидаю.
не было никакого резона слать бестолковое мыло.
redlord (2005-03-24 15:14:00) [8]to digitman
я вам на мыло исходник бросил 10кило
чтото он на отрез пахатьотказывается если он у вас отработает тогда будет совсем не смешно
Digitman (2005-03-24 12:59:00) [9]
> redlord (24.03.05 11:36) [5]
> приведенный вами код почемуто не отрабатывается
врешь ведь ...
либо сервис заведомо доступен, либо ct Nonblocking ..
третьего не дано.
redlord (2005-03-24 11:36:00) [10]To digitman
приведенный вами код почемуто не отрабатывается
тоже. оба исключения e:exception и e:esocketerror молчат
как партизаны может в компиляторе чтото включать надо чтоб они отработали ,но в книгах которые у меня есть про ето нигде не сказано
Digitman (2005-03-24 08:27:00) [11]
> молчит бипер
выкинь свой "бипер", это дилетантский способ "отладки" (тем паче под НТ), для таких целей есть полноценный встроенный отладчик
client:=Tclientsocket.Create(nil);
client.Host:='127.0.0.1';
client.Port:=80;
client.ClientType:=ctblocking;
try
client.Open;
except
on e.exception do
ShowMessage('Исключение ' + e.classname + ' ' + e.message);
end;
redlord (2005-03-23 23:58:00) [12]TO Alexander Panov
В блокираванном режиме ONERROR ??????? :))
Alexander Panov (2005-03-23 22:51:00) [13]Используй событие OnError
redlord (2005-03-23 22:46:00) [14]народ ну что ни кто не знает как отловить ошибку при конекте
блокированного клиента к серверу ??