After doing some research i thought of implementing a base class not only for sockets but for everything you might get a callback for called "device" which can be eg a serial line, parallel port, a file or a network connection.
the device class will be using poll on posix (had a look on aio but didn't like it and seems not very complete to me)
and completion ports on windows, which has the drawback that Win98 won't be supportet (only nt supports it so nt4, 2000, XP etc will support it)
If you have any suggestions/questions please let me know.
PS: then two Socket classes will be derived one for tcp and one for udp both will (udp later) support ssl