- クライアント側では、常に完全な応答が得られるか、応答の半分をあるソートで残りの半分を別のソートで取得する可能性があります(たとえば、 recv()API用に定義されています)。
- recv()APIで埋め込まれた2つの応答を受け取る可能性はありますか?
0
A
答えて
1
ゼロから任意のサイズのデータを取得できます。実際に受信したデータ量を確認するには、常に戻り値を確認してください。
あなたの質問にお答えしてください:あなたは完全な「応答」よりも少なくても、完全な「応答」より多くを得ることができます。 2つ以上の完全な応答メッセージを受け取った場合、2つ、または1つ半のメッセージ、または複数のメッセージを受信する可能性があります。
3
TCPはメッセージの境界を保持しません。それが公開するのはバイトストリームです。したがって、片側で呼び出すsend()は、相手側のrecv()に対応していない可能性があります。たとえば、以下のことが起こるかもしれない:
- コールが再度100バイトで)(送信コール、100バイト()で送信
- Bは、(RECVを呼び出し)となる200バイト(Nagle's algorithm参照)
あるいは、逆:
- コールが(送信)1のMIB
- とBは、(RECVを呼び出し)、次いで(RECVを呼び出し、512 KiBのを取得し)、再度、取得512 KiB(バッファスペースは受信側または送信側で不十分でした)。あなたの「パディング」という質問については
、ないあなたがたrecvの戻り値をチェックするを持っていることを()実際にあなたのバッファに何バイトを返された場所を確認します。 [6バイト:データサイズヘッダ]
0
この方法を送信するために渡されたデータ・ブロックを形成することができる[データ]を
そして各反復に1つのバイトを読み取るループ内のrecv()を呼び出します。 'データサイズヘッダー'(最初の6バイト)を読み取り、望ましいサイズのバッファーを割り当て、残りのバイトを読み取ります。
関連する問題
- 1. 全角Vimeo埋め込みレスポンス
- 2. 埋め込みブートストラップレイアウトの埋め込み
- 3. pdf埋め込み/埋め込み
- 4. RESTful APIへの組み込み/埋め込みvs.リンク
- 5. mongodbへの配列の埋め込み埋め込み
- 6. 埋め込みAPIアクセスなし - iframely
- 7. 埋め込み
- 8. Qt Creatorの埋め込み方法埋め込みPSQL
- 9. Xamarinフォームの埋め込みまたはネイティブ埋め込み
- 10. 埋め込みドキュメントの更新埋め込み
- 11. モバイルSafari、iPhone(埋め込みコールバック)の埋め込みイベント
- 12. 埋め込みプレーヤーと埋め込み用画像のコンテンツ
- 13. 埋め込みツイートのDjango埋め込みURL
- 14. イメージをAJAXレスポンスに埋め込む
- 15. 埋め込みモノタッチデバッグ
- 16. 埋め込みリンク
- 17. 埋め込みパラメータ
- 18. 埋め込みコード
- 19. テンソルフロー埋め込み
- 20. 埋め込みオーディオ
- 21. 埋め込みタグ
- 22. 埋め込みカミソリビュー
- 23. @埋め込みリストオブジェクトハイバーネート
- 24. 埋め込みエンティティ
- 25. リカレントニューラルネットワーク埋め込み
- 26. Python埋め込み
- 27. 埋め込みパワーバイレポート
- 28. ビデオ埋め込み
- 29. 埋め込みオーディオ
- 30. 埋め込み@フォントフェースフォントクローム