Often used in Linux C / C ++ open source Socket Library [turn]

Transfer: https://www.cnblogs.com/gccbuaa/p/7015599.html

1.      Linux Socket Programming In C++ : http://tldp.org/LDP/LG/issue74/tougher.html

2.      ACEhttp://www.cs.wustl.edu/~schmidt/ACE.html

ACE ACE_OS adaptation using various shielding layer, complex and cumbersome Caozuoxitong API.

ACE is a large-scale middleware products, about 200,000 lines of code, too ambitious, a bunch of design patterns, architecture layer after layer. It is huge and complex. Suitable for large-scale projects. Open source, free. Do not rely on third-party libraries. When in use, it should be based on the situation. Where did you see the one to use. Cross-platform support.

ACE super heavyweight network communications development framework. ACE Adaptive Communication Environment (AdaptiveCommunication Environment) is free to use, open source object-oriented framework. Among implements many core patterns for concurrent communication software.

ACE provides a rich set of reusable C ++ package appearance (Wrapper Facade) and frame assembly may be completed across multiple platforms common communication software tasks, which comprises: event demultiplexing and dispatching event handler, signal processing, service during initialization, interprocess communication, shared memory management, message routing, distributed services dynamic (re) configuration, concurrent execution and synchronization, etc.

3.      C++ Sockets Libraryhttp://www.alhem.net/Sockets/index.html

It Sockets is a cross-platform library that implements include TCP, UDP, ICMP, SCTP protocol. Application Protocol have been implemented include SMTP, HTTP (S), Ajp. It has SOCKSclient implementation and anonymous DNS. Support for HTTP GET / POST / PUT and framework of WebServer.

It encapsulates the sockets C API C ++ class library. Support SSL, IPv6, tcp and udp sockets, sctp sockets, http protocol, highly customizable error handling.

4.      Asio C++ Libraryhttp://think-async.com/

It is based on the development of asynchronous IO Boost library encapsulates the Socket frequently used operations. Socket-based simplifies the development process. It is open source, free, cross-platform support.

5.      libeventhttp://libevent.org/

It is a network library written in C language, is the main support class Linux operating system, the latest version adds support for Windows, the IOCP. Because IOCP is asynchronous IO. POLL model under Linux. EPOLL model, as well as the freebsd KQUEUE these and other sync totally inconsistent in usage models. So usage is not the same, like the same in the ACE Reactor and Proactor mode. Use need to change their thinking.

Assuming no particular restriction on the performance. Then use the select models in libevent to achieve cross-platform operation, select the model can across Windows, Linux, Unix. Solaris and other systems.

Libevent is a high-performance lightweight open source network library, its mechanism is event-triggered response encapsulates three of the following events: IO event, timer event, signal event.

select operating model to achieve cross-platform, Windows environment support IOCP. Google's open source Chromium WEB browser in Mac and Linux version numbers. Also used Libevent. Which shows the quality of the library.

6th       libevhttp://software.schmorp.de/pkg/libev.html

It is written in C language. Linux only supports the library system, had time only encapsulates EPOLL model uses similar libevent, but very simple, minimal amount of code is a library. Also a few thousand lines of code. Obviously, this is certainly not the code cross-platform support, and assuming you only need to perform the following in Linux. It is also possible to use the library's.

 

libev and very much like libevent, in accordance with its author, can be used as a replacement for the libevent. It can provide higher performance.

libev is a high-performance event loop function is achieved a powerful reactor.

7.      SimpleSockethttp://home.kpn.nl/lcbokkers/simsock.htm

This library make it easier to write Socket-based client / server program.

 

8.      simple-sockethttp://sourceforge.net/projects/simple-socket/

An easy to use C++ socket andnetwork library, mainly for UNIX systems.

9.       POCOhttp://pocoproject.org/

POCO C ++ Libraries provide a C ++ class library for developing applications based portable network function involving threads, thread synchronization, file system access, streaming operations, shared libraries and class loading, protocols, and network sockets comprising: HTTP, FTP, SMTP and the like; which itself comprises a HTTPserver. XML parsing provide access interface and SQL database. POCO libraries, modular, efficient design and implementation makes POCO particularly suitable for embedded development. In the field of embedded development because C ++ both for underlying (device I / O, interrupt handling, etc.) and high-level object-oriented development, more and more popular.

10.  libcurlhttp://curl.haxx.se/libcurl/

libcurl is a free lightweight client network library. Support 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 uploading, HTTP form upload, proxy, cookies, username and password authentication.

 

Suppose you develop a client. libcurl is a good choice.

11.   libiophttp://sourceforge.net/projects/libiop/

C language to develop a cross-platform network IO library.

Features: c / c ++ api, underlying support epoll, select, poll etc. io model. Asynchronous event model; task pool model, cross-platform thread interface. Cross-platform (Linux / windows). Log service. stable. Support 7 * 24 hours uninterrupted execution. Their own initiative to deal with the abnormal state; high concurrency and fast response; API simplicity, learning costs at the end.

 

Note: The above content of the discussion from the network!

 

Guess you like

Origin www.cnblogs.com/sky-heaven/p/11612780.html