TCP ストリームを経由するメッセージ プロトコルを作成しようとしています。受信者は、メッセージの境界がどこにあるかを知る必要があります。
1) 固定長のメッセージ、2) 受信者がメッセージの大きさを知るためのサイズ フィールド、または 3) 一意のメッセージ ターミネータ (これはメッセージの他の場所では使用できないと思います) のいずれかを送信できます。
効率上の理由から、#1 は使用しません。
#2 は気に入っていますが、ストリームが同期しなくなる可能性はありますか?
受信者がメッセージのサイズを事前に知ることができず、ターミネータがメッセージの他の場所に表示されないようにする必要があるため、アイデア #3 は好きではありません。
#2で、同期が外れる可能性がある場合、ターミネータを追加できますか、それとも送信者プログラムが送信する内容が正しい限り、決して同期が外れないことが保証されていますか? #2と#3を行う必要がありますか?
私にお知らせください。
ありがとう、ジブ