|
RoZher
|
|
Проблема с BC++ Builder6 и сокетами07.06.2011, 14:32. Показов 2073. Ответов 3
Метки нет (Все метки)
Есть необходимость с некоторой переодичностью опрашивать сервер по TCP/IP.
Для этого я использую таймер по которому проверяю активность сокета (используется TClientSocket), и если не активен то пробую его открыть внутри try-catch. Далее если он активен то посылаю серверу запрос, иначе ставлю признак ошибки и завершаю обработку таймера. По ходу программирования я сперва начал отлаживать ветку с ошибкой открытия сокета и столкнулся со следующей проблемой. Первые два-три прохода все работает нормально (делаю Open(), проверяю что сокет не активен, ставлю признак ошибки, завершаю обработку таймера). Затем на 3-й или 4-й проход после выхода из обработки таймера случается исключение ESocketError с сообщеинем 'Asynchronous socket error <код ошибки>'. Если у сокета поставить обработку события OnError, то перед появлением сообщения программа попадает на нее. В связи с этим вопрос, почему искючение не ловится в try-catch в котором я пробую открыть сокет, и как можно обойти выдачу этого сообщения? |
|
| 07.06.2011, 14:32 | |
|
Ответы с готовыми решениями:
3
Проблема с сокетами Проблема с сокетами в апплете под IE 5.0 Есть проблема с сокетами в Borland C++ Builder 6 |
|
Airhand
|
|
| 09.06.2011, 01:03 | |
|
У 6-го билдера проблема с клиентским сокетом, я, помучавшись, написал свой класс с использование WIN API-шного клиентского сокета. Если нжно приведу куски исходника. Что странно, серверный сокет у билдера работает нормально...
|
|
|
RoZher
|
|
| 15.06.2011, 15:48 | |
|
Все оказалось проще. В обработчике события OnError поставил обнуление кода ошибки, и все ОК.
|
|
|
Airhand
|
|
| 15.06.2011, 16:20 | |
|
Обнулять код ошибки неудобно: не узнанш почему она произошла, и, соответственно из-за кого (обрыв соединения, недоступность адресата и т.д.). Кроме того, Builder-овский сокет - VCL надстройка над WIN API (можно видеть покопавшись в коде). Я сделал аналогичную надстройку, которая работает быстрее и гарантированно удаляется из памяти при завершении работы с сокетом, чего, кстати, не делает Builder. В итоге: на машине где постоянно крутится приложение, которое периодически обменивается покетами с другой машиной, происходит постепенное сжирание памяти. И это еще не все: иногда при соединении builder-овский клиентский сокет получает exception, даже после отлова которого он не в состоянии возобновить работу (даже динамическое создание компонента и его убиение в случае ошибки не помогает - приходится перезапускать приложение).
|
|
| 15.06.2011, 16:20 | |
|
Помогаю со студенческими работами здесь
4
Проблема нагрузки ЦПУ сокетами, что делать? BorlandC++Builder6 Builder6 и Windows10 Java Builder6 Не инклудит Builder6 Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Подстановка значения реквизита справочника в табличную часть документа
Maks 10.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2.
Задача: при выборе сотрудника (справочник Сотрудники) в ТЧ документа. . .
|
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях.
Задача: при копировании документа очищать определенные реквизиты и табличную. . .
|
модель ЗдравоСохранения 8. Подготовка к разному выполнению заданий
anaschu 08.04.2026
https:/ / github. com/ shumilovas/ med2. git
main ветка * содержимое блока дэлэй из старой модели теперь внутри зайца новой модели
8ATzM_2aurI
|
Блокировка документа от изменений, если он открыт у другого пользователя
Maks 08.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в конфигурации КА2.
Задача: запретить редактирование документа, если он открыт у другого пользователя.
/ / . . .
|
|
Система безопасности+живучести для сервера-слоя интернета (сети). Двойная привязка.
Hrethgir 08.04.2026
Далее были размышления о системе безопасности. Сообщения с наклонным текстом - мои.
А как нам будет можно проверить, что ссылка наша, а не подделана хулиганами, которая выбросит на другую ветку и. . .
|
Модель ЗдрввоСохранения 7: больше работников, больше ресурсов.
anaschu 08.04.2026
работников и заданий может быть сколько угодно, но настроено всё так, что используется пока что только 20%
kYBz3eJf3jQ
|
Дальние перспективы сервера - слоя сети с космологическим дизайном интефейса карты и логики.
Hrethgir 07.04.2026
Дальнейшее ближайшее планирование вывело к размышлениям над дальними перспективами. И вот тут может быть даже будут нужны оценки специалистов, так как в дальних перспективах всё может очень сильно. . .
|
Горе от ума
kumehtar 07.04.2026
Эта мне ментальная установка, что вот прямо сейчас, мол, мне для полного счастья не хватает (нужное вписать), и когда я этого достигну - тогда и полный кайф. Одна из самых сильных ловушек на пути. . . .
|