Использование Web.Win.Sockets в C++ Builder 10, Сиэтл

У меня есть существующий (большой) проект, который был изначально построен с использованием C++ Builder 2010. Он использует устаревшие сокеты для связи.

Я прочитал, что они все еще были доступны в примере проекта, и собрал его из командной строки. Я перешел к файлу bpl в папке примеров из пакета "Компоненты / Установка" и установил его, а затем попытался запустить код. Но я чувствую, что какой-то шаг пропущен.

Включение Web.Win.Sockets.hpp из папки с примерами, похоже, недостаточно. Кажется, что он не содержит определений, касающихся многих вещей, таких как, например, TServerSocket и т. Д., Которые использует существующий код. System.Win.ScktComp, кажется, включает в себя эти отсутствующие определения, но смешивание обоих не кажется правильным. Просто для забавы я однажды попробовал какую-то безумную вещь и заставил ее скомпилировать, но передаваемые данные, казалось, содержали мусор, который испортил связь.

В какой-то момент я попытался перейти к компонентам в System.Win.ScktComp, но не было хорошей информации о том, что соотносится с тем, и были ли какие-либо предостережения. После того, как я получил программу для компиляции, она не сможет подключиться и т. Д.

Итак, есть ли хорошее руководство по включению и использованию "старых" сокетов для C++ Builder 10 Seattle? И если бы кто-то перешел на новые, это капля замены или потребовалось бы много работы? Система передает большое количество данных в собственном двоичном формате, поэтому выполняется много потоковой обработки и т. Д. Сейчас мне нужно запустить его и запустить, поэтому большая перезапись этих частей в настоящий момент невозможна.

1 ответ

Решение

Web.Win.Sockets а также System.Win.ScktComp не одно и то же, и не являются взаимозаменяемыми заменами друг друга.

System.Win.ScktComp содержит старые компоненты сокета VCL (TClientSocket, TServerSocket, так далее). Это тот, который вы хотите.

Web.Win.Sockets содержит старые компоненты сокета CLX (TTcpClient, TTcpServer, так далее). Вы не хотите этого, поэтому игнорируйте пример проекта, он вам не нужен.

Чтобы получить компоненты сокетов VCL, все, что вам нужно сделать, это установить dclSockets пакет, который находится в вашем $(BDS)\bin Папка, как в документации сказано:

Установка компонентов Socket

Компоненты сокета не установлены по умолчанию. Чтобы использовать компоненты сокета, вы должны установить пакет dclsockets <.bpl>.

Чтобы установить компоненты сокета:

  1. Выберите Компонент> Установить пакеты.
  2. В диалоговом окне " Установка пакетов " нажмите "Добавить".
  3. В диалоговом окне " Добавить пакет дизайна " перейдите к C:\Program Files (x86)\Embarcadero\Studio\17.0\bin,
  4. Выберите dclsockets230.bpl и нажмите Открыть.
  5. Нажмите OK, чтобы закрыть диалоговое окно Install Packages.
  6. Компоненты сокетов ( TClientSocket и TServerSocket) перечислены в категории " Интернет" панели инструментов.

Примечание. Эти шаги являются одноразовыми инструкциями по установке. Компоненты сокетов должны быть доступны для всех будущих проектов.

Если вы хотите переключить свой код на другие компоненты сокетов в будущем, вам придется соответствующим образом переписать код сокетов.

Другие вопросы по тегам