1. 程式人生 > >C++ http 流媒體等 開源專案記錄

C++ http 流媒體等 開源專案記錄

1、 http client 

 libcurl (C語言寫的)、

QT 的QNetworkAccessManager、

QNetworkAccessManager*  m_pManager;
QNetworkRequest m_request;
QNetworkReply*          m_pReply;

網友總結的demo

2、流媒體伺服器

  EasyDarwin、Live555

3、RPC框架

 4、sqlite 客戶端

   easysqlite

5、http server 

Restbed 框架為 C++11 構建的程式帶來了 restful 功能,它基於 boost.asio 建立。

Restbed 可用於需要通過 HTTP 無縫和安全通訊構建應用程式的全面和一致的程式設計模型,能夠對一系列業務流程進行建模,旨在針對移動,平板電腦,桌面和嵌入式生產環境。

它類似於將 NGINX 嵌入到您公司自己的產品線中。

linux編譯:

git clone --recursive https://github.com/corvusoft/restbed.git
mkdir restbed/build
cd restbed/build
cmake -DBUILD_TESTS=YES -DBUILD_EXAMPLES=YES -DBUILD_SSL=NO -DBUILD_SHARED=YES -DCMAKE_INSTALL_PREFIX=/output-directory  ..
make -j 2  install  //CPU_CORES+1  cpu核數加一

編譯完後 會在/output-directory 生成 所有檔案

vs2015 編譯

cd restbed

mkdir build

cd build

cmake -G "Visual Studio 14 2015 Win64" -DBUILD_EXAMPLES=YES -DBUILD_SSL=NO -DBUILD_TESTS=YES ..

cmake --build . --target ALL_BUILD --config Release

ctest
這樣編譯預設是靜態庫 restbed.lib,編譯時間有點長,出去溜會彎吧。

編譯他給的例子

Example demo.cpp

#include <cstdlib>
#include <restbed>
 #include <memory>
using namespace std;
using namespace restbed;

void post_method_handler( const shared_ptr< Session > session )
{
    const auto request = session->get_request( );

    int content_length = request->get_header( "Content-Length", 0 );

    session->fetch( content_length, [ ]( const shared_ptr< Session > session, const Bytes & body )
    {
        fprintf( stdout, "%.*s\n", ( int ) body.size( ), body.data( ) );
        session->close( OK, "Hello, World!", { { "Content-Length", "13" } } );
    } );
}

int main( const int, const char** )
{
    auto resource = make_shared< Resource >( );
    resource->set_path( "/resource" );
    resource->set_method_handler( "POST", post_method_handler );

    auto settings = make_shared< Settings >( );
    settings->set_port( 1984 );
    settings->set_default_header( "Connection", "close" );

    Service service;
    service.publish( resource );
    service.start( settings );

    return EXIT_SUCCESS;
}


g++ -std=c++11 demo.cpp -o demo -lrestbed -I/output-directory/include -L/output-directory/library

 測試

curl -d "param1=value1&param2=value2" "http://192.168.6.185:1984/resource"

curl -d 表示 post 請求

6、http server  windows端

7、 http server  ehttp 

安卓直播客戶端 ,來瘋

c++ 執行緒池 

遊戲伺服器開源程式 ,官網地址

github地址

相關推薦

C++ http 媒體 開源專案記錄

1、 http client   libcurl (C語言寫的)、 QT 的QNetworkAccessManager、 QNetworkAccessManager*  m_pManager; QNetworkRequest m_request; QNetworkReply

C++網路程式設計方面的開源專案

Webbench是一個在linux下使用的非常簡單的網站壓測工具。它使用fork()模擬多個客戶端同時訪問我們設定的URL,測試網站在壓力下工作的效能,最多可以模擬3萬個併發連線去

快速上手SpringBoot需要一些腳手架以及其他開源專案記錄

renren-fast 是一個輕量級的Spring Boot2.0快速開發平臺,其設計目標是開發迅速、學習簡單、輕量級、易擴充套件;使用Spring Boot、Shiro、MyBatis、Redis、Bootstrap、Vue2.x等框架,包含:管理員列表、角色管理、選單管理、定時任

Adobe將支援HTTP媒體直播 預示著ipad將可以用flash嗎?

Adobe Flash Media Server的產品經理Kevin Towes預覽HTTP流媒體直播  Adobe宣佈計劃在iPad 2支援視訊流功能,新增蘋果的HTTP流媒體直播標準到他們的Flash多媒體伺服器(Flash Media Server)產品。此舉將可緩和兩

2017年 GitHub最受歡迎的機器學習、影象處理開源專案

      最近,Mybridge釋出了一篇文章,對比了過去一年中機器學習領域大約8800個開源專案後,選出30個2017年度優秀的開源專案,包含機器學習開源庫、資料庫以及其他應用程式,這些專案差不多都是在2017年1-12月釋出。MybridgeAI通過受歡迎度、參與度以及

android 媒體 播放器 專案 原始碼

我們先看一下多媒體框架在整個Android系統所處的位置 從框架圖可以看出Media Framework處於Libraries這一層,這層的Library不是用Java實現,一般是C/C++實現,它們通過Java的JNI方式呼叫。 多媒體架構: 基於第三方PacketVideo 公司的OpenCO

6個P2P媒體開源專案介紹

P2P流媒體開源專案介紹  1. PeerCast  2002年成立,最早的開源P2P流媒體專案。PeerCast把節點按樹結構組織起來, 每個頻道都是一個樹, 直播源是根節點,父節點只給子節點提供資料。節點離根節點越遠,傳輸時延就越大,所以樹的深度應該儘可能短,但節點有限的上行頻寬限制了節點的寬度。 2.

EasyDSS RTMP媒體伺服器的HTTP介面query url的C++實現方法

EasyDSS支援HTTP GET介面訪問,我們需要獲取url的各種引數資訊 比如http://ip:port/action?a=1&b=2&c=3 我們需要知道對應的a、b、c的值 這裡我們實現了簡單的query url,能滿足一般要求

800Li 媒體和傳統http播放MP4和FLV對比

流媒體 http html5 mp4 隨著Web 應用發展的普及,在瀏覽器上播放媒體(視頻、音頻)的需求變得越來越普遍;很多的企業在嘗試在網站加入多媒體內容,最常見的倆種方式: 1. 普通的 http 文件點播 ,直接通過網站前臺 file upload 的方

HTTP協議下可拖動時間軸播放FLV的實現(偽媒體

prot pac -m method bytes encoding 編寫 時間軸 delay HTTP協議下實現FLV的播放其實並不復雜,當初實現的原理是使用了flowPlayer插件實現的,效果還不錯。但仍有兩大問題影響著客戶的訪問情緒: 1.預加載時頁面卡死,似乎沒有

6個P2P媒體開源項目介紹

算法 劃分 href 視頻直播 發的 負責 lib 實現 點播 P2P流媒體開源項目介紹 1. PeerCast 2002年成立,最早的開源P2P流媒體項目。PeerCast把節點按樹結構組織起來, 每個頻道都是一個樹, 直播源是根節點,父節點只給子節點提供數據。節點離

常用的媒體協議及其應用場景信息總結

咨詢 視頻播放 專線 通過 區別 不同的 文件存儲 通用 其他 近日一直被直播延時問題所困惑,為此特整理一些關於常用流媒體的協議信息,希望能對自己解決直播延時有所幫助。 1.RTMP(Real Time Messaging Protocol)Adobe推出的實時消息傳輸協議

值得學習且精簡的C/C++開源專案

一、tinyhttpd  使用C語言開發的tinyhttpd 是一個不到 500 行的超輕量型 Http Server,用來學習非常不錯,可以幫助我們真正理解伺服器程式的本質。 專案主頁:http://sourceforge.net/projects/tinyhttpd/

LIVE555媒體庫曝程式碼執行漏洞,VLC、MPlayer播放器均受影響

來自思科Talos團隊的安全研究人員Lilith Wyatt在LIVE555流媒體庫(LIVE555 Streaming Media)中發現了一個嚴重的任意程式碼執行漏洞,包括VLC和MPlayer在內的流行媒體播放器以及一些內嵌流媒體播放器的裝置都受其影響。 LIVE555 Streaming

CSDN學院中的Android影音(媒體)播放器開發實戰基於NDK、C++和FFmpeg 課程已經上線

CSDN學院中的 FFmpeg安卓流媒體播放器開發實戰視訊課程已經上線 課程開發工具:      AndroidStudio3   Android影音(流媒體)播放器開發實戰基於NDK、C++和FFmpeg   對學員

記錄我第一個開源專案:clever-logger

自己寫的一個簡單易用的Nodejs日誌中介軟體,適用於connect和express框架 1、可以記錄request、response中的一些資料和定義於日誌,支援顯示在控制檯和本地檔案。 2、可自定義日誌檔案組織形式:1)、按日期作為資料夾儲存日誌檔案 2)、日期作為日誌名的一部分 3

[開源專案]_[C++ CSDN部落格下載-CSDN部落格匯出-CSDN部落格備份工具]

  場景: 1.閱讀某些大牛的專業blog,另存很麻煩。 2.csdn的blog不穩定,指不定哪天出問(gua) 題(diao),手頭先備份一份再說。   分析下csdn的官方部落格下載工具的特點: 1.是基於C#的,必須安裝.net 4.0以上。

​​​​​​​C/C++程式設計師必須熟練應用的開源專案 -- 轉

  作為一個經驗豐富的C/C++程式設計師, 肯定親手寫過各種功能的程式碼, 比如封裝過資料庫訪問的類, 封裝過網路通訊的類,封裝過日誌操作的類, 封裝過檔案訪問的類, 封裝過UI介面庫等, 也在實際的專案中應用過, 但是回過頭仔細想想,其實以前自己寫過的這些程式碼,只能

Linux C/C++程式設計師必須熟悉的開源專案-轉載

作為一個經驗豐富的Linux C/C++程式設計師, 肯定親手寫過各種功能的程式碼, 比如封裝過資料庫訪問的類, 封裝過網路通訊的類,封裝過日誌操作的類, 封裝過檔案訪問的類, 封裝過UI介面庫等, 也在實際的專案中應用過, 但是回過頭仔細想想,其實以前自己寫過的這些程式碼,

十個適合快速學習的C開源專案

程式碼閱讀——十個C開源專案  1. Webbench Webbench是一個在linux下使用的非常簡單的網站壓測工具。它使用fork()模擬多個客戶端同時訪問我們設定的URL,測試網站在壓力下工作的效能,最多可以模擬3萬個併發連線去測試網站的負載能力。Webbench使