2017-05-24 6 views
-1

私は小バイトのパケットとファイルストリームを転送しています。着信パケットが実際にファイルストリームであるかどうかを知る方法はありますか、それはすべてIOHandlerのバイトのように見えますか?Delphi Indy 10.6とtcpclientで、入力バッファのデータフォーマットを知る方法があります

+0

データタイプ情報も同様に送信します。 – Victoria

+0

私は何を期待しているのか知っていますが、状況が「同期していない」場合、どのタイプのデータが私を待っているかを知ることは本当に役に立ちます。 – Skutch

+0

あなたのクライアントはそれを知るべきです。 「制御不能」な行動はありえません。クライアントがあなたのサーバに提供されている種類のものを知らない場合は、それを伝える必要があります。そして、クライアントは、ファイル転送が完了するまで(例えば、ファイル転送に続いてファイルサイズバイトが送信されることによって)、または何らかの着信パケットが受信されるまでバイトを受信するまで待機する。 – Victoria

答えて

1

着信パケットが実際にファイルストリームであるかどうかを知る方法はありますか、それはすべてIOHandlerのバイトのように見えますか?

IOHandlerに関する限り、これは生のバイトです。アプリケーションコードにプロトコルを定義して実装して、データパケットの構造と識別方法を制御するのはユーザーの責任です。たとえば、TLD(Type-Length-Data)は一般的なプロトコルのイディオムで、値は送信されるデータのタイプを示し、その後にデータの長さを含む値が続き、実際のデータが続きます。

関連する問題