
Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
|
25.04.2005, 03:28
|
|||
|---|---|---|---|
|
|||
ClientSocket |
|||
|
#18+
Добрый день! Кто может подсказать, почему не срабатывает такой код: ... try { ClientSock1->Open(); // открываю сокет } catch(...) { ShowMessage("Ошибка при отккытии сокета"); } ... Я хочу отловить исключительную ситуацию в случае возникновения ошибки при открытии сокета, но программа благополучно проскакивает секцию try{}catch(...){}. В результате вместо корректной обработки исключительной ситуации значительно позже я получаю системное сообщение об ошибке. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
25.04.2005, 09:55
|
|||
|---|---|---|---|
ClientSocket |
|||
|
#18+
То, что сокет не открылся не является исключительной ситуацией. Надо проверять ClientSock1->Active, если true, то открылся, в противном случае - нет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
26.04.2005, 03:07
|
|||
|---|---|---|---|
|
|||
ClientSocket |
|||
|
#18+
независимо от того осуществляю я проверку или нет, при неудачной попытке открытия сокета получаю: ...exception class ESocketError with message "Asynchronous socket error 10061"... Впечатление, что ClientSock1->Open(), выполняется в другом потоке, и флаг ClientSock1->Active, выставляется позже, в зависимости от результата попытки открытия сокета. Соответственно возврат в программу (из ClientSock1->Open()) происходит еще до того, как известен результат попытки. Например, такой код всегда выводит сообщение "No!". //------------------------------------ ClientSock1->Open(); if(ClientSock1->Active) ShowMessage("Ok!"); else ShowMessage("No!"); //------------------------------------ через секунду выполняю: //------------------------------------ if(ClientSock1->Active) ShowMessage("Ok!"); else ShowMessage("No!"); //------------------------------------ и если открытие сокета прошло нормально (т.е. если я не получил сообщения типа ...exception class ESocketError with message "Asynchronous socket error 10061"... ) получаю сообщение "Ok!" ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|

start [/forum/topic.php?fid=57&mobile=1&tid=2033409]: |
0ms |
get settings: |
11ms |
get forum list: |
20ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
161ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
50ms |
get tp. blocked users: |
1ms |
| others: | 250ms |
| total: | 516ms |

| 0 / 0 |
