在 C++ Builder 10 西雅图中使用 Web.Win.Sockets

Using Web.Win.Sockets in C++ Builder 10 Seattle

我有一个现有的(大型)项目,该项目最初是使用 C++ Builder 2010 构建的。它使用现已弃用的套接字进行通信。

read 它们在示例项目中仍然可用并从命令行构建它。我从 Component/Install Packages 导航到示例文件夹中的 bpl 并安装它,然后继续尝试让代码运行。但我觉得缺少了一些步骤。

包括示例文件夹中的 Web.Win.Sockets.hpp 似乎还不够。它似乎不包含关于很多东西的定义,例如现有代码使用的 TServerSocket 等。 System.Win.ScktComp 似乎包含了这些缺失的定义,但将两者混合似乎不是正确的做法。只是为了好玩,我曾经尝试过一些疯狂的事情并让它编译,但传输的数据似乎包含乱码,导致通信混乱。

有一次我尝试转向 System.Win.ScktComp 中的组件,但没有关于什么与什么相关以及是否有任何警告的好信息。我拿到程序编译后就无法连接等等

那么,是否有关于为 C++ Builder 10 Seattle 启用和使用 "old" 套接字的良好指南?如果要转移到新的,是更换数量减少还是需要大量工作?系统以自定义二进制格式传输大量数据,因此完成了大量流处理等。现在我需要把它弄好 运行 所以对这些部分进行大量重写目前是不可行的时刻.

Web.Win.SocketsSystem.Win.ScktComp 不是一回事,不能相互替代。

System.Win.ScktComp 包含旧的 VCL 套接字组件(TClientSocketTServerSocket 等)。这就是你想要的。

Web.Win.Sockets 包含旧的 CLX 插座组件(TTcpClientTTcpServer 等)。你不需要这个,所以忽略示例项目,你不需要它。

要获取 VCL 套接字组件,您需要做的就是安装 $(BDS)\bin 文件夹中的 dclSockets 包,如文档所述:

Installing Socket Components

The socket components are not installed by default. To use the socket components, you must install the dclsockets<.bpl> package.

To install the socket components:

  1. Select Component > Install Packages.
  2. In the Install Packages dialog box, click Add.
  3. In the Add Design Package dialog, browse to C:\Program Files (x86)\Embarcadero\Studio.0\bin.
  4. Select dclsockets230.bpl, and click Open.
  5. Click OK to dismiss Install Packages dialog.
  6. The socket components (TClientSocket and TServerSocket) are listed in the Internet category of the Tool Palette.

Note: These steps are one-time installation instructions. The socket components should be available for all future projects.

如果以后要将代码切换到不同的套接字组件,则必须相应地重新编写套接字代码。