我有一个最初使用 C ++ Builder 2010 构建的现有(大型)项目。它使用现已弃用的套接字进行通信。
我read它们仍然可以在示例项目中使用,并从命令行构建它。我从组件/安装包导航到示例文件夹中的bpl并安装它,然后继续尝试获取代码。但是我觉得缺少一些步骤。
从示例文件夹中包含 Web.Win.Sockets.hpp 似乎不够。它似乎不包含许多内容的定义,例如现有代码使用的 TServerSocket 等。 System.Win.ScktComp 似乎包含了这些缺失的定义,但混合两者似乎并不是正确的做法。只是为了好玩,我尝试了一些像这样的疯狂的事情,并将其编译,但传输的数据似乎包括垃圾,搞砸了沟通。
有一次,我尝试转移到 System.Win.ScktComp 中的组件,但没有关于什么相关的内容以及是否有任何警告的良好信息。我得到程序编译后就无法连接等。
那么,是否有任何良好的指南来启用和使用" old" C ++ Builder 10 Seattle 的套接字?如果要转移到新的那个,是替换还是需要大量工作?系统以自定义二进制格式传输大量数据,因此需要完成大量的流处理等。现在我需要启动并运行,因此此时大量重写这些部分是不可行的。
答案 0 :(得分:2)
Web.Win.Sockets
和System.Win.ScktComp
不是一回事,也不是彼此的替代品。
System.Win.ScktComp
包含旧的VCL套接字组件(TClientSocket
,TServerSocket
等)。这是你想要的。
Web.Win.Sockets
包含旧的CLX套接字组件(TTcpClient
,TTcpServer
等)。你不想要这个,所以忽略示例项目,你不需要它。
要获取VCL套接字组件,您需要做的就是安装dclSockets
文件夹中的$(BDS)\bin
包,如文档所示:
默认情况下不安装套接字组件。要使用套接字组件,您必须安装 dclsockets< .bpl> 包。
安装套接字组件:
- 选择组件> Install Packages 即可。
- 在安装包对话框中,单击“添加”。
- 在添加设计包对话框中,浏览到
C:\Program Files (x86)\Embarcadero\Studio\17.0\bin
。- 选择 dclsockets230.bpl ,然后点击“打开”。
- 点击确定以关闭安装包对话框。
- 套接字组件(TClientSocket和TServerSocket)列在工具选项板的 Internet 类别中。
醇>注意:这些步骤是一次性安装说明。套接字组件应该可用于所有未来的项目。
如果您希望以后将代码切换到不同的套接字组件,则必须相应地重新编写套接字代码。