Форум программистов, компьютерный форум, киберфорум
C++ Builder
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.82/11: Рейтинг темы: голосов - 11, средняя оценка - 4.82
RoZher

Проблема с BC++ Builder6 и сокетами

07.06.2011, 14:32. Показов 2039. Ответов 3
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Есть необходимость с некоторой переодичностью опрашивать сервер по TCP/IP.
Для этого я использую таймер по которому проверяю активность сокета (используется TClientSocket), и если не активен то пробую его открыть внутри try-catch. Далее если он активен то посылаю серверу запрос, иначе ставлю признак ошибки и завершаю обработку таймера.
По ходу программирования я сперва начал отлаживать ветку с ошибкой открытия сокета и столкнулся со следующей проблемой. Первые два-три прохода все работает нормально (делаю Open(), проверяю что сокет не активен, ставлю признак ошибки, завершаю обработку таймера). Затем на 3-й или 4-й проход после выхода из обработки таймера случается исключение ESocketError с сообщеинем 'Asynchronous socket error <код ошибки>'.
Если у сокета поставить обработку события OnError, то перед появлением сообщения программа попадает на нее.

В связи с этим вопрос, почему искючение не ловится в try-catch в котором я пробую открыть сокет, и как можно обойти выдачу этого сообщения?
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
07.06.2011, 14:32
Ответы с готовыми решениями:

Проблема с сокетами
У меня есть три файла: main.py import PyWinConsole console = PyWinConsole.Console() console.endWork() PyWinConsole.py import os...

Проблема с сокетами в апплете под IE 5.0
Народ! Здесь в чате видел, что уже кто-то использовал сокеты в апплете. Пишу вот что: PrintWriter out = null; Socket clientSocket...

Есть проблема с сокетами в Borland C++ Builder 6
Проблема заключается в следующем. При если по таймеру постоянно пытаться подключится к серверу (ClientSocket, ServerSocket. При условии что...

3
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, даже после отлова которого он не в состоянии возобновить работу (даже динамическое создание компонента и его убиение в случае ошибки не помогает - приходится перезапускать приложение).
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
15.06.2011, 16:20
Помогаю со студенческими работами здесь

Проблема нагрузки ЦПУ сокетами, что делать?
Начать стоит с того, что имеется серверная и клиентская программа на .net c#, сервер, используя socket с tcp протоколом, отправляет клиенту...

BorlandC++Builder6
#include &lt;vcl.h&gt; #include &lt;string.h&gt; #include &lt;math.h&gt; #include &lt;Printers.hpp&gt; #pragma hdrstop #include &quot;Unit1.h&quot; ...

Builder6 и Windows10
Добрый день! Работает ли builder c++ 6 версии на Windows 10?

Java Builder6
Ребята, подскажите пожалуйста, где скачать ЯВУ Билдера 6? Уже облазил сколько не нашёл. Дали сделать лабы на нём. Заранее благодарю.

Не инклудит Builder6
Добро всем ! :senor: Пытаюсь приИнклудить это: #include &quot;SearchUtils.h&quot; Выдает такую ошибку: Unit34.cpp(5): E2209 Unable to open...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка. Рецензия / Мнение/ Перевод https:/ / **********/ gallery/ thinkpad-x220-tablet-porn-gzoEAjs . . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru