私はネットワークプログラミングに関する多くの経験はありませんが、それを必要とする興味深い問題が生じました。サーバーは、異なるタイプのデータの複数のストリームを他のマシンに送信します。各マシンは、ストリームのどれ(1つまたは複数)を受信したいかを選択できる必要があります。セットアップ全体はローカルネットワークのみに限定されています。最初は2つのクライアントしかありませんが、可能であれば、スケーラブルなアプローチを設計したいと思います。ローカルネットワーク上で異なる種類のデータをストリーミングする:tcpまたはudp?
単一のストリームだけをストリーミングする既存のサーバーコードは、そのためにTCPストリーミングソケットを使用しています。しかし、このアプローチが複数のストリームや複数のクライアントにうまくいくかどうかは、そのテーマに関するいくつかの読書からはわかりません。その理由は、同じストリームを受信したいが、異なるTCPソケットを介して接続する2つのクライアントは、帯域幅を浪費することになりませんか?特にUDPに比べて、マルチキャストが可能です。
私の未熟さのために、私はそこに情報を提供してくれた人に忠告しています。ストリームを信頼できるものにすることを念頭に置いて、UDPから最初から始め、それは、TCPを使い続けるよりも?あるいは、これは適切なネットワーク構造を設計することによってより良く解決されるでしょうか?必要に応じて詳細を提供していただければ幸いです。ありがとう。
更新:現時点では信頼性の高いマルチキャストのためにPGMとemcasterを探しています。サーバー側ではC#実装が、クライアント側ではPython実装が必要です。
第1オフ。クライアントがストリームから、または間違った順序ですべてのデータを取得しないかどうかは重要ですか? –
ストリームの各メッセージは順次であると考えられるため、信頼性が重要です。クライアントは、適切な処理を行うために正しい順序に依存します。 – rahul1210
まあ、私はUDPを使用して気にしません。なぜこれらの2つの非常に重要な問題を確実にするために誰かがすでに行ったことを再実装しようとする理由 –