• 欢迎访问开心洋葱网站,在线教程,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站,欢迎加入开心洋葱 QQ群
  • 为方便开心洋葱网用户,开心洋葱官网已经开启复制功能!
  • 欢迎访问开心洋葱网站,手机也能访问哦~欢迎加入开心洋葱多维思维学习平台 QQ群
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏开心洋葱吧~~~~~~~~~~~~~!
  • 由于近期流量激增,小站的ECS没能经的起亲们的访问,本站依然没有盈利,如果各位看如果觉着文字不错,还请看官给小站打个赏~~~~~~~~~~~~~!

开源网络通信库参考

网络通信/流媒体 弦苦 1181次浏览 0个评论

Sockets tcp/ip communication library

C++ Sockets Library

This is a GPL licensed C++ class library wrapping the berkeley sockets C API, and therefore works on most unixes and also win32. The library is in use in a number of real world applications, both commercial and open source.

Features include, but are not limited to,SSL support,IPv6 support,tcp and udp sockets, sctp sockets, http protocol, highly customizable error handling. Testing has been done on Linux and Windows 2000, and to some part on Solaris and Mac OS X.

References as follow:

C++ Sockets Library: Class diagram

C++ Sockets

The Ultimate TCP-IP

1Easy To Use, Powerful Framework

 Includesboth high-level and low-level APIs.

 No need to know Winsock programming. Work with thehigh level APIs to perform complex tasks with just a few lines of code.

 Works with MFC, ATL and Windows SDK applications.

 Fully object oriented, letting you create your own specialized Internet classes with ease.

 The library is 100% royalty free.

 Unlike other development components this framework is designed to work on all Win32 versions of Windows (i.e. not only NT).

 Createhighly scalable servers (hundreds of connections per CPU) using our multi-threadedserver framework.

 Createcustomized protocols for highly efficient data transfer.

2Includes Servers For The Most Popular Protocols

The Server edition of Ultimate TCP/IP includes the server-side implementations for the following protocols:

  •  Web Server (HTTP protocol).
  •  Finger server.
  •  Fully functional Email and relay server (SMTP, POP3, DNS)
  •  File transfer server (FTP)
  •  Echo server.

 *full source for each of the protocols is included

 

libcURL

libcurl – the multi protocol file transfer library.

libcurl is a free and easy-to-useclient-side URL transfer library, supporting FTP, FTPS, HTTP, HTTPS, SCP, SFTP, TFTP, TELNET, DICT, LDAP, LDAPS, FILE, IMAP, SMTP, POP3, RTMP and RTSP. libcurl supports SSL certificates, HTTP POST, HTTP PUT, FTP uploading, HTTP form based upload, proxies, cookies, user+password authentication (Basic, Digest, NTLM, Negotiate, Kerberos4), file transfer resume, http proxy tunneling and more!

libcurl is highly portable, it builds and works identically on numerous platforms, including Solaris, NetBSD, FreeBSD, OpenBSD, Darwin, HPUX, IRIX, AIX, Tru64, Linux, UnixWare, HURD, Windows, Amiga, OS/2, BeOs, Mac OS X, Ultrix, QNX, OpenVMS, RISC OS, Novell NetWare, DOS and more…

libcurl is free,thread-safe,IPv6 compatible, feature rich, well supported, fast, thoroughly documented and is already used by many known, big and successful companies and numerous applications.

ACE

TheADAPTIVE Communication Environment (ACE) is a freely available, open-source object-oriented (OO) framework that implements many core patterns forconcurrent communication software. ACE provides a rich set of reusable C++ wrapper facades and framework components that perform common communication software tasksacross a range of OS platforms. The communication software tasks provided by ACE include event demultiplexing and event handler dispatching, signal handling, service initialization, interprocess communication, shared memory management, message routing, dynamic (re)configuration of distributed services, concurrent execution and synchronization.

ACE is targeted for developers of high-performance andreal-time communication services and applications. It simplifies the development of OO network applications and services that utilize interprocess communication, event demultiplexing, explicit dynamic linking, and concurrency. In addition, ACEautomates system configuration and reconfiguration by dynamically linking services into applications at run-time and executing these services in one or more processes or threads.

References as follow:

ACE历史与简评

libevent – an event notification library

The libevent API provides a mechanism to execute a callback function when a specific event occurs on a file descriptor or after a timeout has been reached. Furthermore, libevent also support callbacks due to signals or regular timeouts.

libevent is meant toreplace the event loop found in event driven network servers. An application just needs to call event_dispatch() and then add or remove events dynamically without having to change the event loop.

Libevent allows for portable application development and provides the most scalable event notification mechanism available on an operating system. Libevent can also be used formulti-threaded applications, either by isolating each event_base so that only a single thread accesses it, or by locked access to a single shared event_base. Libevent should compile on Linux, *BSD, Mac OS X, Solaris, Windows, and more.

Libevent additionally provides a sophisticated framework for buffered network IO, with support for sockets, filters, rate-limiting, SSL, zero-copy file transmission, and IOCP. Libevent includes support for several useful protocols, including DNS, HTTP, and a minimal RPC framework.

References as follow:

libevent入门》《libevent基础

libevent介绍
》《
libevent简介和使用
》《
libevent介绍及示例

libevent在异步socket中的使用》《socket异步编程–libevent的使用

对libevent异步并发的初步认识

基于libevent的http框架的小结》《
基于Libevent的HTTP Server示例
使用 libevent 和 libev 提高网络应用性能

libevent源码分析
》《
libevent源码剖析

FTP Application

MiniFTP

MiniFTP is a Winsock API-based minimal FTPclient to be used as a tutorial for using the Winsock API in an MFC environment.

gFTP

gFTP is a free multithreaded file transferclient for *NIX based machines.

KFTPgrabber

KFTPgrabber is a graphical FTP client for theKDE(K Desktop Environment). It implements many features required for usable FTP interaction.

 

Pure-FTPd

Pure-FTPd is a free (BSD), secure, production-quality and standard-conformant FTP server. It doesn’t provide useless bells and whistles, but focuses on efficiency and ease of use. It provides simple answers to common needs, plus unique useful features for personal users as well as hosting providers.

 

FileZilla

The free FTP solution. Both a client and aserver are available. FileZilla is open source software distributed free.

Web Server Framework

 light WebServer

lighttpd

Security, speed, compliance, andflexibility — all of these describe lighttpd (pron. lighty) which is rapidly redefining efficiency of a webserver; as it is designed and optimized forhigh performance environments. With asmall memory footprint compared to other web-servers,effective management of the cpu-load, and advanced feature set (FastCGI, SCGI, Auth, Output-Compression, URL-Rewriting and many more) lighttpd is the perfect solution for every server that is suffering load problems.

 

mongoose(shttpd)

Mongoose is an easy to use web server. It can be embedded into existing application to provide a web interface to it.

Features

l Crossplatform – works on Windows, MacOS and most flavors of UNIX

l CGI, SSL, SSI, Digest (MD5) authorization, resumed download, aliases

l IP-based ACL, Windows service, GET, POST, HEAD, PUT, DELETE methods

l Small footprint: executable size is 40 kB on Linux 2.6 i386 system, 60 kB on Windows system

l Embeddable with simple and clean API. Source is in single .c file to make things easy

 

thttpd

thttpd is a simple, small, portable, fast, and secure HTTP server.

Simple:

It handles only the minimum necessary to implement HTTP/1.1. Well, maybe a little more than the minimum.

Small:

See the comparison chart. It also has a very small run-time size, since it does not fork and is very careful about memory allocation.

Portable:

It compiles cleanly on most any Unix-like OS, specifically including FreeBSD, SunOS 4, Solaris 2, BSD/OS, Linux, OSF.

Fast:

In typical use it’s about as fast as the best full-featured servers (Apache, NCSA, Netscape). Under extreme load it’s much faster.

Secure:

It goes to great lengths to protect the web server machine against attacks and breakins from other sites.

It also has one extremely useful feature (URL-traffic-based throttling) that no other server currently has. Plus, it supports IPv6 out of the box, no patching required.

References as follow:

移植thttpd

深入研究嵌入式web服务器的视频监控应用

 IM WebServer

Jabber

Jabber isInstant Messaging(IM) server written in pure C language,which is theorigin ofXMPP. It is based on XMPP(eXtensible Messaging and Presence Protocol) expressed in XML.With Jabber/XMPP, differences between the IM are overcomed. It allows you to communicate between MSN,Yahoo, and etc.

Instant messaging between theGoogle Talk servers and its clients uses an open protocol,XMPP, allowing users of other XMPP/Jabber clients to communicate with Google Talk users. That is any client that supports Jabber/XMPP can connect to the Google Talk service.Refer toGoogle Talk and MSN via Jabber together in iChat.

References as follow:

A web based Jabber/XMPP client

Psi – The Cross-Platform Jabber/XMPP Client For Power Users

开源Jabber(XMPP) IM服务器

安装Jabberd服务器

heavy WebServer

Apache HTTP SERVER PROJECT

The Number One HTTP Server OnThe Internet!

The Apache HTTP Server Project is a collaborative software development effort aimed at creating arobust,commercial-grade, featureful, and freely-available source code implementation of an HTTP (Web) server.

References as follow:

Apache HTTP Server Version 2.2 Documentation

WindowsApache httpd-2.2.11编译手记

 

Nginx

nginx [engine x] is aHTTP and reverse proxy server, as well as a mail proxy server written by Igor Sysoev. It has been running for more than five years on manyheavily loaded Russian sites includingRambler (RamblerMedia.com). According to Netcraft nginx served or proxied4.70% busiest sites in April 2010. Here are some of success stories:FastMail.FM,WordPress.com.

The sources are licensed under2-clause BSD-like license.

Basic HTTP features

l Serving static and index files, and auto indexing; open file descriptor cache;

l Accelerated reverse proxying with caching; simple load balancing and fault tolerance;

l Accelerated support with caching of remote FastCGI servers; simple load balancing and fault tolerance;

l Modular architecture. Filters include gzipping, byte ranges, chunked responses, XSLT, SSI, and image resizing filter. Multiple SSI inclusions within a single page can be processed in parallel if they are handled by FastCGI or proxied servers.

l SSL and TLS SNI support.

References as follow:

Nginx负载均衡搭建胜过Apache十倍?

XNGINX,牛XIgor Sysoev

nginx源码分析

nginx 0.8.47

Nginx+Php搭建Web服务器

实战Nginx取代Apache的高性能Web服务器

 

Memcache

网站Cache全分析

Cache性能分析

同时多线程处理器上的Cache性能分析与优化

Memcached

Free & open source, high-performance, distributed memory object caching system, generic in nature, but intended for use in speeding up dynamic web applications by alleviating database load.

Memcached is an in-memory key-value store for small chunks of arbitrary data (strings, objects) from results of database calls, API calls, or page rendering.

Memcached is simple yet powerful. Its simple design promotes quick deployment, ease of development, and solves many problems facing large data caches. Its API is available for most popular languages.

References as follow:

Memcached完全剖析

 

Squid cache

Squid is a caching proxy for the Web supporting HTTP, HTTPS, FTP, and more. It reduces bandwidth and improves response times by caching and reusing frequently-requested web pages. Squid has extensive access controls and makes a great server accelerator. It runs on most available operating systems, including Windows and is licensed under the GNU GPL.

Features

Making the most of your Internet Connection

Website Content Acceleration and Distribution

 

Varnish

Varnish is a state-of-the-art, high-performance HTTP accelerator. It uses the advanced features in Linux 2.6, FreeBSD 6/7 and Solaris 10 to achieve its high performance.

References as follow:

使用Varnish代替Squid做网站缓存加速器的详细解决方案

Multimedia Streaming and P2P

An RTSP Toolkit

 

oRTP

oRTP – a Real-time Transport Protocol (RFC3550) stack under LGPL

References as follow:

oRTP Document

oRTP Introduction

RTPoRTP

oRTP协议栈浅析

 

JRTPLIB

JRTPLIB is an object-orientedRTP library written in C++. The library offers support for the Real-time Transport Protocol (RTP), defined in RFC 3550. It makes it very easy to send and receive RTP packets and the RTCP (RTP Control Protocol) functions are handled entirely internally.

References as follow:

Document Reference

流媒体相关知识介绍及其RTP应用

 

MPEG4IP

MPEG4IP provides an end-to-end system to explorestreaming multimedia. The package includes many existing open source packages and the “glue” to integrate them together. This is a tool for streaming video and audio that is standards-oriented and free from proprietary protocols and extensions.

spook

Spook is a Linuxserver application tocapture live video and audio andstream it over an IP network. Currently, Spook supports capturing from a Firewire IIDC camera or Video4Linux(2) source andstreaming MPEG4 with RTSP or JPEG stills with HTTP.

Spook for arm

 

LScube

The LScube – Libre Streaming, Libre Software, Libre Standards (formerly known as OMSP – Open Media Streaming Project) is a free/libre software project, supported by the Internet Media Group, that develops and maintains a suite of programs focused on multimedia streaming. We strive to fully support the IETF’s standards for the real-time data transport over IP. The aim of the project is to provide open, free and interoperable solutions on a par with other proprietary streaming applications. All LScube software is released under Free Software licenses.

Fenice – legacy streaming server

Feng – the RTSP/RTP streaming server

The new streaming server sports various usability and architectural improvement over Fenice, our previous design.

Libnemesi – the RTSP/RTP client library

References as follow:

Fenice vm流程研究

 

live555(VC6版本VC2005版本)

This code forms a set of C++ libraries formultimedia streaming, using open standard protocols (RTP/RTCP, RTSP, SIP). These libraries – which can be compiled for Unix (including Linux and Mac OS X), Windows, and QNX (and other POSIX-compliant systems) – can be used to build streaming applications.

References as follow:

live Documentation

VC2005编译多媒串流程序库

 

VLC

Free streaming and multimedia solutions for all OS!

VLC is afree andopen source cross-platform multimediaplayer andframework, that plays most multimedias files as well as DVD, Audio CD, VCD, and various streaming protocols.

References as follow:

 Doc/Support

VLC RTSP implementation with live555

Windows平台下vlc的编译

VC6编译VLC-0.9.9a步骤说明

VLC产生rtsp测试源

 

Helix

The Helix DNA™ Server

The Helix DNA Server is a universal delivery engine supporting the real time packetization and network transmission of any media type to any device.

Helix DNA Client

The Helix DNA Client is the universal digital media playback engine, supporting playback of any format and codec on any device. It provides the underlying multimedia functionality to a whole host of applications that require local and streaming playback of multiple formats in disparate environements.

Helix Player

The Helix Player is an open source media player for Linux, Solaris, and Symbian based on the Helix DNA Client media engine.

RealPlayer 10.0.8 For Wince源码

 

IP Messenger

This is a pop up style LAN Messenger for multi platforms.

It is based on TCP/IP(UDP).

It does not require server machine-most primitive P2P infrastructure.

Simple, lightweight, and compact size.

References as follow:

IPMSG分析

IPMSG(飞鸽传书)协议翻译

IPMSG协议

IPMSG飞鸽传书网络协议解析手记

IPMsg中最核心的数据结构

IPMSG(飞鸽传书)文件发送源码分析

Icecast

icecast is freeserver software for streaming audio(Mpeg III) over Internet with P2P technology.

 

peercast

PeerCast is a simple, free way to listen toradio and watchvideo on the Internet. It usesP2P technology to let anyone become a broadcaster without the costs of traditional streaming.

References as follow:

peercast王浩聪注释版

Peercast over IPv6

 

myseelite

MyseeLite is aP2P Media Streaming System includingservers on Linux andclient on Windows 98/NT/2000/XP/2003. It was commercial once, but now goes opensource. It was developed from 2003.8 by a company in China.

References as follow:

P2P网络技术原理与C++开发案例》

myseelite源代码和开发分析

 

博客参考

K歌之

四月的专

bbisonic专栏专注于P2P流媒体技术的研究

windcao的专栏先得道,后求术

那些年我们追过的网络库

关于网络通信模型的剖析:libevent libev libuv asio


开心洋葱 , 版权所有丨如未注明 , 均为原创丨未经授权请勿修改 , 转载请注明开源网络通信库参考
喜欢 (1)

您必须 登录 才能发表评论!

加载中……