Commonly used Linux/C + + open-source sockets library

Source: Internet
Author: User
Tags epoll

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

Related Article

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.