Valve have just open sourced on Github their GameNetworkingSockets library. This library is a subset of the networking library available in the Steamworks SDK, but does not require Steam. The library provides reliable and unreliable UDP messaging.
The library features:
- Connection-oriented protocol (like TCP)
- … but message-oriented instead of stream-oriented
- Mix of reliable and unreliable messages
- Messages can be larger than underlying MTU, the protocol performs fragmentation and reassembly, and retransmission for reliable
- Bandwidth estimation based on TCP-friendly rate control (RFC 5348)
- Tools for simulating loss and detailed stats measurement
The library is released under the BSD 3 Revised license, which permits commercial closed source usage, but offers no warrant nor takes any liability. The code is only currently compiled under Ubuntu Linux, but should run on Windows, OS/X as well as Android.