ソケットに書き込む

# socket_write

(PHP 4 >= 4.1.0, PHP 5, PHP 7, PHP 8)

socket_write — ソケットに書き込む

### 説明

function socket_write(Socket `$socket`, string `$data`, ?int `$length` = `null`): int|false

関数 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() - ソケット上で接続待ち(listen)する
- socket_read() - ソケットから最大バイト長まで読みこむ
- socket_strerror() - ソケットエラーの内容を文字列として返す

`↑` and `↓` to navigate • `Enter` to select • `Esc` to close • `/` to open