Date: 2001-07-26 14:28:26
> The main requirement I see for a C++ socket API is that the protocal
> (which functions should be invoked in which order) should be enforced
I'd like to see if we can find a way to do this without dictating a
programming method for the end user.
I've done a lot of Sockets programming on Win32, and I am still amazed at
the number of different programming methods that the sockets API supports:
WinSock, like Unix, provides blocking and nonblocking functions (but not for
all functions -- e.g., hostname lookup on Unix... and Linux nonblocking
isn't the same as other Unixes...). Then, WinSock provides a form of
"notified select()" -- either through Win32 events or Windows messages.
Mixing some of the notifications with Win32 overlapped operations on sockets
allows a fully asynchronous programming method (which I use). Finally, on
NT, completion ports can be used, which are just a fancier type of standard
I'd like to keep as many (asynchronous) options open for the user as
possible. OTOH, especially if we're aiming cross-platform, maybe we should
just provide blocking sockets intended for use with Boost.Thread...
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk