私はアンドロイドクライアントからPythonサーバーにtcpソケットを介して複数のデータ項目を送信しようとしています。クライアント側のユーザーは、複数の選択肢を作ることができるので、文字で送信された番号を使用して要求タイプを区別します。私は選択肢に応じて選択肢と特定のデータを送信しなければなりません。現在の選択肢(この場合は選択肢1)には選択肢と2つの文字列フィールドと画像が必要です。私は自分自身で画像転送を行い、それ自身で作業する選択肢を持っています。私が今問題を抱えているのは、選択したバッファの読み込みが、その直後のイメージのバイトストリームでも読み取られていることです。区別可能なソケット入力
0
A
答えて
2
TCPは、パケットが送信される前に書き込まれた場合、書き込みを1つのパケットにまとめます。つまり、情報は連結された状態で受信されます。
一般的な解決策は、データの前に「オペコード」を組み込むことです。 たとえば、整数を送信する前に接頭辞CHOICEを指定します。 PythonスクリプトでCHOICEを読むと、整数を受け取っていることが分かり、その分だけ多くのデータを読み取ることができます。 イメージを送信する前に、IMGと読み込むバイト数の接頭辞を付けます。このようにして、必要なバイト数だけ読み込み、次のオペコードを探します。
あなたのパケットは、このようになります。
CHOICE1IMG<number of bytes><image bytestream>
は明らかにあなたのオペコードは、あなたが望むものは何でもすることができ、これは単なる一例です。
関連する問題
- 1. Excel:入力可能なドロップダウンリスト
- 2. 入力可能なPDFを入力可能なHTMLフォームに変換する
- 3. 編集可能な入力フィールドと編集不可能な入力フィールドswitcher
- 4. スタイルペーパースライダー編集可能な入力
- 5. jQueryの編集可能な入力テキストボックスフィールド
- 6. スクロール可能なドロップダウンの入力フィールド
- 7. は、二つの可能な入力フォーマット
- 8. 複数のWebソケットを区別する
- 9. JavaソケットServerSide入力
- 10. アクセス方法入力可能なパラメータとしての出力可能
- 11. "ブランク入力"と実際の入力としてゼロの値を区別する
- 12. プログラムでユーザーキー入力とプログラムキー入力を区別できますか?
- 13. 再利用可能な入力と出力を持つコンソールアプリケーションスケルトン
- 14. .data.relセクション内で再配置可能なシンボルと再配置不可能なシンボルを区別する方法
- 15. 受け入れ可能な入力を作成する問題
- 16. 機能入力は可能に異なる種類
- 17. Tapestry5スクロール可能なページ区切り
- 18. ActiveRecordの区別が機能しない
- 19. 変数の大文字小文字を区別しない入力でバッチコードが機能しない
- 20. Pythonで入力可能な空白をどこで入力できますか?
- 21. ユーザ入力の可能性すべて
- 22. 整数のみ入力可能です
- 23. VBA Excel TimeValue()入力可能性
- 24. 入力フィールド値+トグル可能な余分な値
- 25. サイズ変更可能な柔軟な入力フォーム
- 26. JOptionPaneでユーザーの入力を区別する
- 27. リエントラントロック可能な出力?
- 28. 入力、出力、およびコマンドを区別するターミナルプログラムはありますか?
- 29. 利用可能なフィルタリング利用可能なタスクグループ別のギャラリストタスク
- 30. 文字列にデータ化可能なカンマ区切り値を入れよう
こんにちはエリック、私に戻ってくれてありがとう。私はあなたの言っていることを得るが、私はちょうどそれについて最善の方法が行くだろうと確信していない?バイナリデータを含むたくさんの文字列にロット全体を変換して送信するのでしょうか? – Shpongle
私はそれを理解しました。私はデータフィールドのサイズを制限し、それを埋めていなければそのサイズに埋めなければならなかった。私はそれを処理するためにパディングサーバー側を取り除いた。 – Shpongle