1. Linux Socket Programming in C + + : http://tldp.org/LDP/LG/issue74/tougher.html
2. ACE: http://www.cs.wustl.edu/~schmidt/ACE.html
Ace uses the Ace_os adaptation layer to mask a variety of different, complex and cumbersome operating system APIs.
ACE is a large-scale middleware product, the code is about 200,000 lines, too ambitious, a bunch of design patterns, architecture layer after layer. It is large and complex and suitable for large projects. Open source, free, and not dependent on third-party libraries. When using, depending on the situation, look at which layer you are going to use. Support cross-platform.
ACE Ultra-Heavyweight network communication development framework. The ACE Adaptive Communication Environment (Adaptivecommunication Environment) is a free-to-use, open-source object-oriented framework that implements many of the core patterns used in concurrent communication software. ACE provides a rich set of reusable C + + wrapper skins (Wrapper facade) and framework components to accomplish common communication software tasks across multiple platforms, including: Event multiplexing and event handler dispatch, signal processing, service initialization, interprocess communication, shared memory management, message routing, Distributed service dynamic (Heavy) configuration, concurrent execution and synchronization, etc.
3. C + + Sockets Library: http://www.alhem.net/Sockets/index.html
It is a cross-platform sockets library that implements TCP, UDP, ICMP, and SCTP protocols. Implemented application protocols include SMTP, HTTP (S), AJP. With SOCKS client implementation and anonymous DNS, support for HTTP get/post/put and webserver framework.
It encapsulates the C + + class library of the sockets C. API. Supports SSL, IPV6, TCP and UDP sockets, SCTP sockets, HTTP protocol, highly customizable error handling.
4. Asio C + + Library: http://think-async.com/
It is an asynchronous IO library based on boost development, which encapsulates the common operation of sockets and simplifies the development of socket-based programs. It is open source, free, and supports cross-platform.
5. libevent: http://libevent.org/
It is a C language written network library, the main support is the class Linux operating system, the latest version added to the Windows IOCP support. Since IOCP is asynchronous IO, with the poll model under Linux, the Epoll model, and the kqueue of FreeBSD, these synchronization models are completely inconsistent in usage, so the use of the method is not the same as the reactor and proactor patterns in Ace, Use needs to change the way of thinking. If there is no specific requirement for performance, then using the Select model in libevent for cross-platform operations, the Select model can span systems such as Windows,linux,unix,solaris.
Libevent is a lightweight, open-source, high-performance network library that uses event triggering to encapsulate the responses of the following three events: IO event, timer event, signal event. The Select model enables cross-platform operations, and IOCP is supported in the Windows environment. Google's Open source web browser, chromium, also uses libevent in Mac and Linux versions, which is a demonstration of the quality of the library.
6. Libev: http://software.schmorp.de/pkg/libev.html
It is written in C and supports only Linux-based libraries, and previously only encapsulated the Epoll model. The use method is similar to Libevent, but is very concise, the code is the least of a library, also thousands of lines of code. Obviously this kind of code cross-platform certainly is unable to support, if you only need to run under Linux, then use this library is also possible.
Libev and libevent are like, according to the author's introduction, can be used as a substitute for libevent, can provide higher performance. Libev is a high-performance event loop that implements a powerful reactor.
7. Simplesocket: http://home.kpn.nl/lcbokkers/simsock.htm
This class library makes it easier to write socket-based client/server programs.
8. Simple-socket: http://sourceforge.net/projects/simple-socket/
An easy-to-use C + + socket Andnetwork Library, mainly for UNIX systems.
9. POCO: http://pocoproject.org/
POCO C + + libraries provides a set of C + + class libraries for developing Web-based portable applications that involve threading, thread synchronization, file system access, streaming operations, shared libraries and class loading, sockets, and network protocols including: HTTP, FTP, SMTP, etc. It also contains an HTTP server that provides parsing of the XML and access to the SQL database. The modular, efficient design and implementation of Poco libraries makes Poco particularly suitable for embedded development. In the field of embedded development, because C + + is suitable for both the underlying (device I/O, interrupt processing, etc.) and high-level object-oriented development, more and more popular.
libcurl: http://curl.haxx.se/libcurl/
Libcurl is a free lightweight client network library that supports Dict, FILE, FTP, FTPS, Gopher, HTTP, HTTPS, IMAP, IMAPS, LDAP, LDAPS,POP3, Pop3s, RTMP, RTSP, SCP, SFTP, SMTP, SMTPS, Telnet, TFTP. Support SSL, Httppost,httpput, FTP upload, HTTP form upload, proxy, cookies, username and password authentication.
If you are developing a client, Libcurl is a good choice.
libiop: http://sourceforge.net/projects/libiop/
A C language developed cross-platform network IO Library.
Features: C/c++api, bottom support Epoll, select,poll and other IO models, asynchronous event model, task pool model, cross-platform threading interface, cross-platform (linux/windows), log service, stable, support uninterrupted operation, Automatic processing of abnormal state, high concurrency and fast response, simple API, learning cost bottom.
Note: The above content is organized from the network!
Commonly used Linux/C + + open-source sockets library