I am looking to do socket communications (listen, accept, connect, recv, send, disconnect) in both linux and windows. My project is in C, so unless someone can think of a way fo
I don't know one library that complies both Windows and Linux but I think winsock
is similar enough to Linux socket programming.
In particular it supplies you 'select()' and the other functions mentioned. I guess you will need a very thin #ifdef wrapper to avoid type casting warnings.
See here the winsock page for select
check HS Sockets C Source Library for Windows and Linux
The plibsys library provides all the requested features: cross-platform and portable, lightweight, provides socket IPv4 and IPv6 support as well as many other useful things like multithreading. Works with sockets in non-blocking mode (though you can switch to a blocking one, too). Has quite a good documentation with the test code examples.
The Boost library includes these features.
Off-hand, I can think of four libraries:
GLib Channels from the GLib framework can abstract socket usage, but you'll need platform-specific code for socket creation.
libuv is a platform abstraction layer for node.js and handles, among other things, sockets and async IO.
The Apache Portable Runtime also contains network routines.
The Netscape Portable Runtime does socket manipulation as well.
Ptlib provides cross platform C++ code that works well for sockets. www.opalvoip.org
Copes nicely with threads. Some support for mac and BSD. Under active development and maintainance. MPL Core library in Ekiga - the preferred desktop app that does SIP & H.323
For windows - it compiles with MSVC. for linux, it compiles with gcc autoconf make etc.
OK, it is C++, but you can work with that... Have a the source inside ptlib/samples - there are many examples of using ptlib there.