私はC++を学んでいます(現在、Visual Studioをインストールしていて、Hortonの本を手にしています)。そうする理由は、ユーザーが使用できるp2pタイプのクライアント/サーバープログラムを作成したいからです。ポートフォワーディングを必要とせずにデバイスからビデオをストリーミングする(そしてテクニカルサポートコールの時間を節約する)。
ユーザーがデバイスメニューからホームサーバーにデバイスを登録し(エンジニアがそれを処理します)、PCでクライアントにログインし、パスワードを使用してデバイスをデバイスの有名な「友達リスト」に追加します。彼らはマシンで使用しました。その後、いつでも、ポートフォワーディングを必要とせずに、デバイスを開いてWeb上で制御できます。
Skypeの仕組みのようなものだと思います。ユーザーは、お互いのIPアドレスを知らなくても、またはポートを転送しなくても、オーディオ/ビデオをお互いにストリーミングできます。
誰かがそれがどのように機能するかについての概要と、メインサーバーとクライアントをプログラミングするときに考慮する必要があるネットワークの考慮事項を教えてもらえますか?どこから始めればいいのかさえわかりません...プログラミングの助けは必要ありません。通信インフラストラクチャがどのように見えるかだけです。クライアントは、事前にIPアドレスを知らなくても、またはデバイスにルーティングするためにリモートネットワークに入る情報やコマンド用のポートを持たずに、p2pネットワーク上のデバイスを検出して通信するにはどうすればよいですか?
私はp2pネットワーキングについて読んでいて、p2pアーキテクチャの基本的な考え方は理解していますが、p2pを介した通信の実際の理論と方法は理解していません。