
On Fri, 10 Jun 2005 03:10:26 +0400, Caleb Epstein <caleb.epstein@gmail.com> wrote: []
Sockets are not files, and I think to treat them identically, and build a library assuming that iostreams is the lowest level interface anyone could want to use is folly. There are large, measurable, performance trade-offs associated with iostreams compared to C stdio operations on every platform I have encountered, and similarly when compared to the low level system read and write (or send/recv) calls.
I write high speed, network-centric, message-driven applications for a living. I would not be able to write applications that scale properly using a purely iostreams based interface to the network. The high level abstractions are nice for simpler applications, but they simply don't work well when you need to scale to managing many hundreds of connections and guaranteeing a certain quality of service to each. A blocking I/O model is not acceptable for my uses.
Totally agree. IMO, sockets is a border area for boost whose "emphasis is on libraries which work well with the C++ Standard Library". C++ Standard Library itself does not work well with sockets or, more precisely, does not offer low fat async input / output abstractions. -- Maxim Yegorushkin