![]() |
|
Модераторы: Poseidon, Snowy, bems, MetalFan |
![]()
|
|
| Yuriy |
|
|||
|
Unregistered |
Подскажите, PLS, как избежать ошибки, а вернее что бы на экран не выбрасывалось окошко поверх приложения с ошибкой, при попытке коннектится ClientSocket'ом куда либо, если инет в даный момент отсутствует ?
|
|||
|
||||
| Dayana |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 352 Регистрация: 6.10.2002 Где: Тель-Авив Репутация: 2 Всего: 4 |
Попробуй
try попытка соединиться except сам обрабатывай ошибку end |
|||
|
||||
| dr.ZmeY |
|
|||
|
Политолог ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 3892 Регистрация: 26.3.2002 Где: ..::STALINGRAD::. . Репутация: нет Всего: 60 |
У тебя что, прога всё время коннекта ищет?
|
|||
|
||||
| Yuriy |
|
|||
|
Unregistered |
К сожаления TRY EXCEPT и ERRORCCODE:=0 не помогают, а это в первую очередь проверил !
А прога у меня все время должна быть связана с сервером, и если у клиента на машине связь с инетом прервалась, то прога пытается поаторно установить свзяь с сервером. Вот здесь и выскакивает эта ошибка, если не отвечает сам хост, а даже не порт этого хоста ! |
|||
|
||||
| Fantasist |
|
|||
|
Лентяй ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1517 Регистрация: 24.3.2002 Репутация: нет Всего: 41 |
Есть с Делфийскими сокетами такая проблема. Асинхронные исключения - вещь весьма неприятная. Обрабатывай Application.OnException.
-------------------- Волны гасят ветер... |
|||
|
||||
| blast |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 2 Регистрация: 16.2.2003 Где: Москва Репутация: нет Всего: нет |
В Борландовом компоненте TClientSocket есть маааленькая ошибочка - забыли закрыть сокет при ошибке и в итоге через опр. время если клиент постоянно пытается законнектиться к серверу а его нет, происходит переполнение системного буфера сокетов... Я сталкивался с этой проблемой еще на Win98 там под буфер отведено 254 элемента. Мой клиент стучался с интервалом 1 секунда и через ~15 минут (самое длительное время из всех попыток) появлялось окно с ошибкой 10055 (WSAENOBUFS или No buffer space available), хотя ВСЕ проверки и были СДЕЛАНЫ и ОБИШКИ ОТКЛЮЧЕНЫ !!! По мноему мнению сообщение посылается от Операционки - поэтому не влияет тот факт, что ErrorCode := 0.
Выход: Воспользоваться другими компонентами или при ошибке ПРОСТО закрыть сокет АПИшной функцией. Дескриптор или SocketHandle в компоненте доступен. Закрывать сокет нужно именно АПИшной ф-цией, т.к. в .Close() - ОШИБКА !! Немного лирики: Я месяца 3 - 4 потратил на выяснение этого. Никто не отвечал - даже про ошибку не знали. Перепробовал МНОГО всего и компоненты и ДАЖЕ на нижнем уровне сокеты соединял. Потом все-т-ки нашелся ДОБРЫЙ человек, который разъяснил в чем дело и все заработало как надо. Мое мнение - удобнее TClientSocket - TServerSocket. Все! Всем успехов и удачи |
|||
|
||||
| Fantasist |
|
|||
|
Лентяй ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1517 Регистрация: 24.3.2002 Репутация: нет Всего: 41 |
Ага, понятно. Ошибка там достадочно явно просматривается. В некоторых случаях (или во всех?) статус при рассоеденении не меняется - при повторной попытке законнектиться вылетает ошибка AlreadyConnected. Я, в свое время, отлавливал все эти вещи (в основном, в Application.OnException) и пересоздавал компонент. В принципе, эти моменты достадочно лекго выловить при отладке исходников этих компонентов, только мне борландовские сокеты все равно не очень устраивают в плане функциональности, во всяком случае сервер, чтобы тратить усилия на разбирательство с их исходниками. -------------------- Волны гасят ветер... |
|||
|
||||
![]()
|
| Правила форума "Delphi: Общие вопросы" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Delphi: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |