-1
私は小バイトのパケットとファイルストリームを転送しています。着信パケットが実際にファイルストリームであるかどうかを知る方法はありますか、それはすべてIOHandlerのバイトのように見えますか?Delphi Indy 10.6とtcpclientで、入力バッファのデータフォーマットを知る方法があります
私は小バイトのパケットとファイルストリームを転送しています。着信パケットが実際にファイルストリームであるかどうかを知る方法はありますか、それはすべてIOHandlerのバイトのように見えますか?Delphi Indy 10.6とtcpclientで、入力バッファのデータフォーマットを知る方法があります
着信パケットが実際にファイルストリームであるかどうかを知る方法はありますか、それはすべてIOHandlerのバイトのように見えますか?
IOHandlerに関する限り、これは生のバイトです。アプリケーションコードにプロトコルを定義して実装して、データパケットの構造と識別方法を制御するのはユーザーの責任です。たとえば、TLD(Type-Length-Data)は一般的なプロトコルのイディオムで、値は送信されるデータのタイプを示し、その後にデータの長さを含む値が続き、実際のデータが続きます。
データタイプ情報も同様に送信します。 – Victoria
私は何を期待しているのか知っていますが、状況が「同期していない」場合、どのタイプのデータが私を待っているかを知ることは本当に役に立ちます。 – Skutch
あなたのクライアントはそれを知るべきです。 「制御不能」な行動はありえません。クライアントがあなたのサーバに提供されている種類のものを知らない場合は、それを伝える必要があります。そして、クライアントは、ファイル転送が完了するまで(例えば、ファイル転送に続いてファイルサイズバイトが送信されることによって)、または何らかの着信パケットが受信されるまでバイトを受信するまで待機する。 – Victoria