私は状況を説明すればもっと良いと思うので、これはあまりにも秘密に思われません。私は、私の生徒のうちのいくつかが働きたいと思うプロジェクトのためのいくつかのスターターコードをリリースしたいと思います。このプロジェクトでは、いくつかのインターネットWebページをスクラップするので、入力URLのHTMLをダウンロードして文字列として返すURLStreamクラスを提供したいと考えています。クロスプラットフォームC++ネットワーキング(大きなライブラリなし)
問題は、クロスプラットフォーム(学生にはMac/Windows/Linuxマシンがあります)の方法でネットワーキングに対処する特に良い方法を見つけることができないということです。私はBoost asioやlibCurlのようなライブラリを知っていますが、これらを使うことの問題は、私が全学生がそれらをダウンロードすることを強制することができないということです。だから私の質問は二重です:
- これらのクロスプラットフォームのネットワークコードを提供する良い方法はありますか?
- ライブラリーがこれを行う唯一の方法であれば、ライブラリーをスタータープロジェクトに添付して、学生がそれをダウンロードする必要はありませんか?私はこれが愚かな質問かもしれないことを知っていますが、これが可能かどうかを知ることができません。
libasio-devのlibasio-docのインストール課題の目標は何ですか?学生が低レベルのネットワークプログラミングを学ぶためには? HTTPを学ぶ?または、他の何か?生徒が低レベルのネットワークプログラミングを学ぶことが目的でない限り、サードパーティのライブラリ(libcurlなど)を使用することを強くお勧めします。それはあなたとあなたの学生の両方にとってはるかに簡単になります。そして、それはあなたからのメンテナンスがずっと少なくなり、あなたのためのサポートと問題がはるかに少なくなります。 –
@Someprogrammerdude練習の目標はネットワーキングとは関係ありません。彼らはたいていhtmlでうんざりしています。私は、ネットワーキングについて心配することなく、課題に集中できるようにしたいだけです。私はサードパーティのライブラリを使用することに寛容ではありませんが、libsをダウンロードしてセットアップするように伝える必要があります(これは私が避けようとしていたものです)。 libcurlをスタータープロジェクトに添付してダウンロードする必要はありませんか? – gowrath
生徒がアクセスできるシステム(Windowsシステム、macOSシステム、Linuxシステム)のほとんどにアクセスできる場合は、常に静的なライブラリを事前ビルドすることができます。 libcurlを使用してスターターコードを配布し、ビルド時にライブラリーを使用する方法を簡単に説明します。 –