开源网络通信库参考

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

(1)Easy To Use, Powerful Framework

  Includes both high-level and low-level APIs.

  No need to know Winsock programming. Work with the high 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).

  Create highly scalable servers (hundreds of connections per CPU) using our multi-threaded server framework.

  Create customized protocols for highly efficient data transfer.

(2)Includes 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 multiprotocol file transfer library.

libcurl is a free and easy-to-use client-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

The ADAPTIVE Communication Environment (ACE) is a freely available, open-source object-oriented (OO) framework that implements many core patterns for concurrent communication software. ACE provides a rich set of reusable C++ wrapper facades and framework components that perform common communication software tasks across 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 and real-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, ACE automates system configuration and reconfiguration by dynamically linking services into applications at run-time and executing these services in one or more processes or threads.

 

FTP Application

MiniFTP

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

 

gFTP

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

 

KFTPgrabber

KFTPgrabber is a graphical FTP client for the 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 a server are available. FileZilla is open source software distributed free.

 

Web Server Framework

(1)轻量级WebServer

lighttpd

Security, speed, compliance, and flexibility -- all of these describe lighttpd (pron. lighty) which is rapidly redefining efficiency of a webserver; as it is designed and optimized for high performance environments. With a small 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服务器的视频监控应用》

 

(2)IM WebServer

Jabber

Jabber is InstantMessaging(IM) server written in pure C language,which is the origin of XMPP. 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 the Google 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 to Google 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服务器》

 

(3)重量级WebServer

Apache HTTP SERVER PROJECT

The Number One HTTP Server On The Internet!

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

References as follow:

Apache HTTP Server Version 2.2 Documentation

《Windows 下Apache httpd-2.2.11编译手记》

 

Nginx

nginx [engine x] is a HTTP 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 many heavily loaded Russian sites including Rambler (RamblerMedia.com). According to Netcraft nginx served or proxied 4.70% busiest sites in April 2010. Here are some of success stories: FastMail.FM, Wordpress.com.

The sources are licensed under 2-clause BSD-like license.

Basic HTTP features:
l  Serving static and index files, and autoindexing; 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十倍?》

《牛X的NGINX,牛X的Igor 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》

《从RTP到oRTP》

《oRTP协议栈浅析》

 

JRTPLIB

JRTPLIB is an object-oriented RTP 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 explore streaming 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 Linux server application to capture live video and audio and stream it over an IP network. Currently, Spook supports capturing from a Firewire IIDC camera or Video4Linux(2) source and streaming 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 for multimedia 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 a free and open source cross-platform multimedia player and framework, 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 free server software for streaming audio(Mpeg III) over Internet with P2P technology.

 

peercast

PeerCast is a simple, free way to listen to radio and watch video on the Internet. It uses P2P technology to let anyone become a broadcaster without the costs of traditional streaming.

References as follow:

《peercast王浩聪注释版》

《Peercast over IPv6》

 

myseelite

MyseeLite is a P2P Media Streaming System including servers on Linux and client 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源代码和开发分析》

时间: 2024-11-18 01:08:24

开源网络通信库参考的相关文章

机器视觉开源处理库汇总

机器视觉开源处理库汇总 从cvchina搞到的机器视觉开源处理库汇总,转来了,很给力,还在不断更新... 通用库/General Library OpenCV 无需多言. RAVL Recognition And Vision Library. 线程安全.强大的IO机制.包含AAM. CImg 很酷的一个图像处理包.整个库只有一个头文件.包含一个基于PDE的光流算法. 图像,视频IO/Image, Video IO FreeImage DevIL ImageMagick FFMPEG Video

我的Android进阶之旅------>【强力推荐】Android开源图表库XCL-Charts版本发布及展示页

         因为要做图表相关的应用,后来百度发现了一个很好的Android开源图表库(XCL-Charts is a free charting library for Android platform.)                      下面内容转载于:http://blog.csdn.net/xcl168/article/details/29675613,详细介绍了XCL-Charts的展示内容.   =====================================

[C#技术] .NET平台开源JSON库LitJSON的使用方法

原文:[C#技术] .NET平台开源JSON库LitJSON的使用方法 一个简单示例: String str = "{'name':'cyf','id':10,'items':[{'itemid':1001,'itemname':'hello'},{'itemid':1002,'itemname':'hello2'}]}";               //*** 读取JSON字符串中的数据 *******************************             Jso

从Google开源RE2库学习到的C++测试方案

最近因为科研需求,一直在研究Google的开源RE2库(正则表达式识别库),库源码体积庞大,用C++写的,对于我这个以前专供Java的人来说真的是一件很痛苦的事,每天只能啃一点点.今天研究了下里面用到的测试方法,感觉挺好的,拿来跟大家分享下!(哈~C++大牛勿喷) 对于我这个C++菜鸟中的菜鸟而言,平时写几个函数想要测试一般都是在main中一个一个的测试,因为没用C++写过项目,没有N多方法所以在main中一个个测试也不费劲.但是对于一个项目而言,或多或少都有N多方法,如果在main中一个个测试

C++ 100款开源界面库 (10)

(声明:Alberl以后说到开源库,一般都是指著名的.或者不著名但维护至少3年以上的.那些把代码一扔就没下文的,Alberl不称之为开源库,只称为开源代码.这里并不是贬低,像Alberl前面那个系列的教程<2013 duilib入门简明教程>,还有本系列教程,还有前面介绍的CodeProject,基本上都是代码往上面一扔,就不用再怎么维护的.这些都称之为开源代码,其实开源代码对新手的帮助更大,因为很简明的说明了代码用法~O(∩_∩)O~)       前面两个教程已经对制作界面的几种方式进行了

Disable Google Fonts Plus插件禁用谷歌开源字体库

由于Google Fonts字体库等服务在国内被禁用,许多使用Google Fonts的WordPress网站打开异常困难.今天,我们给大家带来了一款插件,Disable Google Fonts Plus,可以方便地解决这个问题. 为什么要关闭Google Fonts字体库 Google Fonts 是谷歌公司推出的一项字体库服务,主要是为了解决跨平台的字体一致性问题.WordPress 3.8版本在重新设计WordPress后台界面的时候,开始使用Google Fonts字体库. 使用Goo

MPAndroidChart开源图表库的使用介绍之饼状图、折线图和柱状图_java

MPAndroidChart开源图表库之饼状图 为大家介绍一款图标开源库MPAndroidChart,它不仅可以在Android设备上绘制各种统计图表,而且可以对图表进行拖动和缩放操作,用起来非常灵活.MPAndroidChart同样拥有常用的图表类型:线型图.饼图.柱状图和散点图. mpandroidchartlibrary.jar包下载地址: https://github.com/PhilJay/MPAndroidChart/releases 下面主要实现以下饼状图: 1.从上面的地址中下载

怎样在Github上托管开源代码库

怎样在Github上托管开源代码库 大家好,今天我们要学习一下怎样在github.com提供的仓库中托管开源软件源代码.GitHub是一个基于web的Git仓库托管服务,提供基于 git 的分布式版本控制和源代码管理(SCM)功能,并加入了自身的特点.它给开源项目和私有项目提供了一个互相协作的工作区.代码预览和代码管理功能.不像Git是一个完完全全的命令行工具,GitHub提供了一个基于web的图形化界面和桌面,也整合了手机操作.GitHub同时提供了私有库付费计划和通常用来管理开源软件项目的免

Linux 基金会无人机开源代码库项目 Dronecode

dronecode无人机开源项目无人机无疑是时下最火爆的硬件创业项目之一,除了亚马逊.Google这样的资深玩家,数以万计的独立开发者和创业公司都希望通过在垂直领域中整合无人机技术实现创新应用,例如健康娱乐.影视制作.新闻报道.环境保护.电子商务.搜索救援和科学研究等. 本周无人机开发者们迎来一个好消息,Linux基金会联合十家公司推出无人机代码计划(Dronecode Project),将为无人机开发者们提供操作系统.导航工具.飞行控制等方面的大量开源代码. 如今虽然大量无人机项目中都采用了L