The Modern C++ Challenge 第11章 の続きです。
今回は第12章に挑戦します。
まずは目次を読む。
第12章 ネットワーキングとサービス
95 ホストの IP アドレスを見つける
96 クライアントサーバー Fizz-Buzz
97 ビットコインの為替レート
98 IMAP を使用したメールの取得
99 テキストを任意の言語に翻訳する
100 写真から顔を検出する
問題文を読む。
問95 ホストの IP アドレスを見つける
ホストの IPv4 アドレスを取得して出力できるプログラムを作成します。 複数のアドレスが見つかった場合は、それらすべてを印刷する必要があります。
ソースコードを斜め読みして実行する。 この章は外部ライブラリを使っていて、 すんなり実行できなかった。
問95 問96 にて asio ライブラリを使っている。
問97 問98 にて curlcpp ライブラリを使っている。 ビルドして共有ライブラリ( libcurlcpp.a) を作成する。
問95 問9a にて マイクロソフトのインターネットサービスを使っている。
API Key が必要です。
面倒なので 今回はパスする。
問98 にて Gmail を使っている。
パスワード認証で接続している。
以前はパスワード認証が使えたが、
現在は OAuth認証だけになっている。
Google: 安全性の低いアプリと Google アカウント
今回は自前でIMAP サーバーを建てて プログラムを実行する。
一通り実行できたので、
Modern C++ に着目して、ソースコードを読んでみる。
問99 にて std::make_unique を使っている。
問100 Face Detection (画像から顔を検出する) です。
マイクロソフトの代わりに Google のインターネットサービスを使ってみる。
ネットワーキングという設問の主旨とは異なるが、 OpenCV の顔検出の機能を紹介する。
第12章 のソースコードを Github に公開した。
https://github.com/ohwada/The-Modern-Cpp-Challenge/tree/main/The-Modern-Cpp-Challenge/Chapter12