Использование 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
Папка, как в документации сказано:
Компоненты сокета не установлены по умолчанию. Чтобы использовать компоненты сокета, вы должны установить пакет dclsockets <.bpl>.
Чтобы установить компоненты сокета:
- Выберите Компонент> Установить пакеты.
- В диалоговом окне " Установка пакетов " нажмите "Добавить".
- В диалоговом окне " Добавить пакет дизайна " перейдите к
C:\Program Files (x86)\Embarcadero\Studio\17.0\bin
,- Выберите dclsockets230.bpl и нажмите Открыть.
- Нажмите OK, чтобы закрыть диалоговое окно Install Packages.
- Компоненты сокетов ( TClientSocket и TServerSocket) перечислены в категории " Интернет" панели инструментов.
Примечание. Эти шаги являются одноразовыми инструкциями по установке. Компоненты сокетов должны быть доступны для всех будущих проектов.
Если вы хотите переключить свой код на другие компоненты сокетов в будущем, вам придется соответствующим образом переписать код сокетов.