サーバーが50ミリ秒ごとにソケットを介してクライアントに画像(100kb)を送信するサーバークライアントモデルを使用して、C#アプリケーションを構築しています...
私は TCP を使用していましたが、このプロトコルのオーバーヘッドに加えて、クライアントのソケットに複数のイメージが存在することもありました。そして、各画像のバイトを分割する巧妙なメカニズムについてはまだ考えていません (実際には、最新のものだけが必要です)。
UDP を使用してみましたが、100kb の dgram は送信できず、64kb の dgram しか送信できないという結論に達しました。それでも、1500 バイトを超えて使用するべきではありません。そうしないと、パケットがネットワークに沿って分割され、パケットの一部が失われる可能性が高くなります。
だから今、私は少し混乱しています。クライアントがイメージを分離できるように、TCP を使用し続け、各イメージの末尾にエスケープ バイトを挿入する必要がありますか? それとも、UDP を使用して 1500 バイトの dgram を送信し、順序付けと回復のメカニズムを考え出す必要がありますか?
ここでの重要な目標は、画像を非常に高速に送信することです。クライアントが新しいものを受け取り続ける限り、途中でいくつかを失うことは気にしません.
または、別のプロトコルを使用する必要がありますか? 前もって感謝します!