是否已弃用Delphi TClientSocket?

时间:2010-12-28 08:58:43

标签: delphi deprecated tclientsocket

在错误报告resolution comments12266(“套接字连接错误导致资源泄漏”),Robert Ehteshamzadeh写道

  

不推荐使用TClientSocket。这个   报告保持开放以允许   建议的解决方法。

这适用于Delphi 6.在更高版本中,默认情况下,TClientSocket和TServerSocket尚未安装在工具选项板中,但安装说明为provided

此后状态是否已更改,以便TClientSocket(和TServerSocket)现在再次成为Delphi VCL中的一流成员?我想在一些项目中使用TClientSocket(作为Indy和Synapse之后的另一个TCP / IP库),但在Embarcadero DocWiki中找不到官方状态信息。

('弃用'类/方法的官方索引将是有用的。)

3 个答案:

答案 0 :(得分:6)

具体回答你的问题:

是的,TClientSocket和TServerSocket仍然被弃用,我无法想象这种情况会发生变化。

答案 1 :(得分:5)

TClientSocket和TServerSocket使用基于Windows消息的无效设计。这个方案是在Windows 3.11中引入的(或者它发生在3.1?中),当时没有真正的多任务处理和多线程套接字处理是不可能的。由于组件市场上出现了更强大,更高性能的解决方案(即Indy,其他图书馆),因此发生了弃用。尽管组件仍在发货,但将旧技术恢复生机是没有意义的。此外,我建议Embarcadero包含一些基于IOCP的服务器套接字实现,但是,我想现在服务器套接字不在Embarcadero的兴趣范围内。

答案 2 :(得分:1)

嗯,这取决于你所谓的弃用。 如果“不再包含在任何源文件夹中”计为弃用,那么是的,它仍然被弃用(D2009)。

<强>更新

实际上存在TClientSocket和TServerSocket的源代码。 @mjn和@Eugene指着我走向它。再次表明,没有找到Windows搜索的东西并不意味着它不存在。它可能只是潜伏在一个带有Windows认为“不可搜索”的扩展名的文件中,因为尚未为它定义搜索过滤器......(我以为我已经设置了.pas文件,但事实证明这是在我的另一台机器上。)

但我想这并没有减损它仍然被弃用......