If you don't care about speed, Berkeley sockets (bind, listen, accept, etc.) are just fine and very easy to deal with.
If you do care about speed, you should be banging against the operating system's provided tools anyways (IOCP on Windows, kqueue on BSD, epoll on Linux, etc.).
If it's abstraction you care about, you shouldn't be doing networking with raw TCP anyways, and should just use zmq, nanomsg, or whatever, and not drag in the entire clown car of boost.
This weekend I tried to bring in boost format. I tried to bring in JUST format, but nope... exceptions, and config, and a bunch of other stuff... Fifteen libraries, maybe?
If you do care about speed, you should be banging against the operating system's provided tools anyways (IOCP on Windows, kqueue on BSD, epoll on Linux, etc.).
If it's abstraction you care about, you shouldn't be doing networking with raw TCP anyways, and should just use zmq, nanomsg, or whatever, and not drag in the entire clown car of boost.