| パートⅰ | パートⅱ | パートⅲ | パートⅳ | パートv | パートⅵ | パートⅶ |
|---|---|---|---|---|---|---|
| プロジェクトの紹介 | プロジェクト機能 | 開発環境 | 並行性モデル | プロジェクトを構築します | 実行中のケース | モジュールの説明 |
このプロジェクトは、Muduoが実装した原子炉モデルに基づくマルチスレッドネットワークライブラリです。 C ++ 11を使用して、BoostへのMuduoの依存性を削除するために書き込み、小さなHTTPサーバーが内部的に実装されています。これにより、Get Requests and Access in Static Resourcesへのアクセスがサポートされ、非同期ログが付属してサーバーの状況を監視します。
このプロジェクトは、チャネルモジュール、ポーラーモジュール、イベントループモジュール、HTTPモジュール、タイマーモジュール、非同期ログモジュール、メモリプールモジュール、およびデータベース接続プールモジュールを実装しています。
Ubuntu 18.04.6 LTSg++ 7.5.0vscodegitcmake 3.10.2 プロジェクトは、マスター奴隷原子炉モデルを採用しています。
tcpserverの開始関数を呼び出した後、スレッドプールが内部で作成されます。各スレッドは、イベントループを個別に実行します。つまり、サブリアクターです。 MainReactorは、スレッドプールからサブレアクターを投票し、読み取りおよび書き込みイベントを処理するサブリークターの数に一般的に派遣されます。マスタースレーブリアクターモデルを使用することには多くの利点があります。
cmakeをインストールします
sudo apt-get update
sudo apt-get install cmakeプロジェクトをダウンロードしてください
git clone [email protected]:Shangyizhou/tiny-network.gitスクリプトビルドプロジェクトを実行します
cd ./tiny-network && bash build.shここでは、ケースとしてシンプルなエコーサーバーを使用し、 EchoServerのデフォルトのリスニングポートは8080です。
cd ./example
./EchoServer実装ステータス:
httpモジュールには、小さなHTTPサーバーケースがあり、実行できます。そのデフォルトのリスニング8080 :
cd ./src/http && ./HttpServerここのいくつかのモジュールは、説明するMuduoソースコードを構成し、このプロジェクトのソースコードを使用するものもありますが、実装のアイデアは一貫しています。
チャネルモジュール
ポーラーモジュール
EventLoopモジュール
バッファモジュール
タイマーモジュール
HTTPモジュール
非同期ログモジュール
メモリプールモジュール
データベース接続プールモジュール