socket_write

ソケットに書き込む

説明

intfalse socket_write(Socket $socket, string $data, intnull $length = null)

関数 socket_write は、 data の内容をソケット socket に書き込みます。

パラメータ

socket

data

書き込まれるバッファ。

length

オプションのパラメータ length で、 ソケットに書き込むバイト数を指定することが可能です。 この値が data より大きい場合、自動的に data のサイズに切り詰められます。

戻り値

ソケットへの書き込みに成功したデータのバイト数を返します。失敗した場合に false を返します。 エラーコードは socket_last_error を用いて取得することができ、この値を socket_strerror に渡すことでエラー情報を文字列で取得可能です。

注意:

socket_write がゼロを返すことも十分ありえます。 これは、書き込むデータが存在しなかったことを意味します。 エラーをチェックするために false かどうかを調べる際には、必ず === 演算子を使用しましょう。

変更履歴

バージョン 説明
8.0.0 socket は、Socket クラスのインスタンスになりました。 これより前のバージョンでは、リソース型でした。
8.0.0 length は、nullable になりました。

注意

注意:

socket_write は、data の内容を必ずしもすべて 書き込むとは限りません。ネットワークバッファの状態にもよりますが、 ある量のデータだけ、たとえば 1 バイトだけ書き込まれたのであったとしても、 そして data のサイズがそれより大きかったとしても、 それはエラーではなく正常な動作です。 そのため、data の残りが転送されたことを保証するには、 ループを使う必要があります。

参考

  • socket_accept
  • socket_bind
  • socket_connect
  • socket_listen
  • socket_read
  • socket_strerror