我刚开始熟悉Embarcadero RAD Studio 2010,我过了Eclipse、Emacs、Visual Studio和notepad的生活:)
我正在进入一个相当大的C++应用程序(500.000 - 1.000.000行),我发现它广泛使用了TClientSocket和TServerSocket。IDE最初是关于TClientSocket没有找到,但仍然可以编译,我抓挠了我的头。然后,我发现它在默认情况下不再安装,并被标记为“回溯”后不再推荐使用。
我试着读到关于这一主题的文章,但没有找到多少信息。我的问题是
为什么deprecated?
。
发布于 2011-05-27 08:21:03
不受欢迎,因为不再支持了。它们是Winsock套接字的包装,因此整体内部机制是相同的--“创建侦听器、侦听、接受、创建客户端处理程序线程、传递它ServerClientSocket、客户端线程读写流”。
您也许可以尝试导入组件--如果您有一个庞大的遗留应用程序要支持,那么如果它工作的话,这肯定是一条路。
还有另一种方法:(使用Indy或Synapse组件构建具有相同成员的'TClientSocket‘和TServerSocket’类,这样遗留应用程序就能正常工作,而不会发生大量更改。
发布于 2014-05-15 12:16:36
他们被反对支持印地套接字。
然而,印第套接字只是阻塞而已。如果您的程序使用了阻塞套接字,那么这很好,但是如果您使用的是非阻塞套接字,那么据我所知,您只有两个选项:
有一些组件TTcpServer和TTcpClient在阻塞和非阻塞之间进行切换.但是,如果您在非阻塞模式下操作它们,它们就不能工作(WSAEWOULDBLOCK的基本操作会失败),并且没有解决办法。
注意,对于可能不知道的其他阅读者:即使是在我编写的最新版本中,也可以通过将dclsocketsNNN.bpl添加到设计时包列表中,将它们导入到IDE中。它们在那里,只是在默认情况下不活动。
就我个人而言,我仍然在生产中使用非阻塞模式的TClientSocket,它工作得很好(在修复了一些bug之后,由于提供了完整的源代码,这是可能的!)
https://stackoverflow.com/questions/6149406
复制相似问题