They are deprecated in favor of Indy sockets.
However, Indy sockets are blocked only. If your program uses blocking sockets, then this is normal, but if you use non-blocking sockets, as far as I know, you have only two options:
- use streams plus block Indy sockets
- use TClientSocket and TServerSocket
There are TTcpServer and TTcpClient components that have a switch between locking and non-locking. However, if you manage them in non-blocking mode, they simply do not work (basic operations are not performed using WSAEWOULDBLOCK), and there is no workaround.
Note for everyone who reads this, who might not know: even in the latest versions (as I write) you can still import them into the IDE by adding dclsocketsNNN.bpl to the list of development-time packages. They are, by default inactive.
Personally, I still use TClientSocket in non-blocking mode in production, it works very well (after fixing some errors, which is possible due to the fact that the full source is provided!)
source share