socket_write
ソケットに書き込む
&reftitle.description;
intfalsesocket_write
Socketsocket
stringdata
intnulllength&null;
関数 socket_write は、
data の内容をソケット
socket に書き込みます。
&reftitle.parameters;
socket
data
書き込まれるバッファ。
length
オプションのパラメータ length で、
ソケットに書き込むバイト数を指定することが可能です。
この値が data より大きい場合、自動的に data のサイズに切り詰められます。
&reftitle.returnvalues;
ソケットへの書き込みに成功したデータのバイト数を返します。&return.falseforfailure;。
エラーコードは socket_last_error
を用いて取得することができ、この値を socket_strerror
に渡すことでエラー情報を文字列で取得可能です。
socket_write がゼロを返すことも十分ありえます。
これは、書き込むデータが存在しなかったことを意味します。
エラーをチェックするために &false; かどうかを調べる際には、必ず
=== 演算子を使用しましょう。
&reftitle.changelog;
&Version;
&Description;
&sockets.changelog.socket-param;
8.0.0
length は、nullable になりました。
&reftitle.notes;
socket_write は、data の内容を必ずしもすべて
書き込むとは限りません。ネットワークバッファの状態にもよりますが、
ある量のデータだけ、たとえば 1 バイトだけ書き込まれたのであったとしても、
そして data のサイズがそれより大きかったとしても、
それはエラーではなく正常な動作です。
そのため、data の残りが転送されたことを保証するには、
ループを使う必要があります。
&reftitle.seealso;
socket_accept
socket_bind
socket_connect
socket_listen
socket_read
socket_strerror