Евгений |
Отправлено: 06.01.2006, 22:03 |
|
Не зарегистрирован
|
Помогите, пожайлуста....
Пишу прогу, используя компоненты ServerSoket и ClientSocket.
Если сервер не поднят, то при подключению к нему выдается ошибка "Asynchronous socket error 10061". Как сделать, что бы перехватить эту ошибку и выдать свой Message. |
|
GoodWin |
Отправлено: 09.01.2006, 17:22 |
|
Дежурный стрелочник
Группа: Участник
Сообщений: 50
|
В событие OnError обработай ошибку по ErrorEvent или ErrorCode и
сделай ErrorCode равной нулю |
|
Евгений |
Отправлено: 09.01.2006, 18:00 |
|
Не зарегистрирован
|
Спасибо, попробую... |
|
Lizard |
Отправлено: 09.01.2006, 22:45 |
|
Ученик-кочегар
Группа: Участник
Сообщений: 20
|
Была точно такая же проблема, стандартные события мне не помогли.
Напиши следующую функцию в *.cpp файле формы:
CODE |
void __fastcall TMainForm::MyException( TObject *Sender, Exception *E )
{
if( String( E->ClassName() ) == "ESocketError" )
{
ShowMessage("Ошибка — ESocketError");
}
}
|
В *.h файле формы в секции private добавь объявление этой функции:
CODE |
void __fastcall MyException( TObject *Sender, Exception *E );
|
В событии FormCreate добавь:
CODE |
void __fastcall TMainForm::FormCreate(TObject *Sender)
{
Application->OnException = MyException;
}
|
При возникновении исключительной ситуации (когда работа идет из билдера) появляться 2 диалоговых окна: стандартное сообщение билдера и сообщение "Ошибка — ESocketError". Когда же просто запустишь *.exe будет только наше сообщение "Ошибка — ESocketError" и не каких других диалоговых окон, т.е. при дисконнекте клиента или сервера не будет ни каких ошибок! |
|
__Cheat3r |
Отправлено: 10.01.2006, 02:09 |
|
Станционный диспетчер
Группа: Участник
Сообщений: 110
|
Фигня это всё .
Балуйся с ClientType и ServerType
З,Ы Эти копоненты — ацтой. |
|