検索

ホームページ  >  に質問  >  本文

C++ - サーバーが返すデータの量がわかりません。PHP のsocket_read() はどのようにして完全なデータを受信しますか?

サーバーによって送信されるデータが、クライアントが一度に処理できる最大バイト数を常に超える場合、クライアントは、socket_read 操作を実行せずに、受信したデータが完了したことをどのように判断できますか? ? /n で構成されます。 while ループを使用してサーバーのデータを読み取ろうとしましたが、動作に問題がありました。

淡淡烟草味淡淡烟草味2869日前682

全員に返信(1)返信します

  • phpcn_u1582

    phpcn_u15822017-05-16 13:11:13

    短いリンクの場合は、socket_set_nonblockを使用してソケットリンクをノンブロッキングに設定し、ループ内でsocket_readを実行し、戻り値の長さが0の場合はループを抜けて受信を終了します(このメソッドは原因が発生する可能性があります)。場合によっては問題が発生します)。

    サーバー側でエラーが発生しないようにデータ長を指定するのが最善です。

    返事
    0
  • キャンセル返事