In addition to server applications, Ktor supports asynchronous clients connecting to other services. You can create pure client applications with it, or create mixed complex applications, that not only serve resources, but also communicate with external services.
Ktor directly supports Raw Sockets, HTTP Clients and WebSockets. Using Raw Sockets it is possible to implement clients with higher level protocols.