socket_write

Write to a socket

&reftitle.description; ``int``false```socket_write` `Socket` `socket` `string` `data` ``int``null```length`&null;

The function `socket_write` writes to the `socket` from the given `data`.

&reftitle.parameters;

`socket`

`data`

- The buffer to be written.

`length`

- The optional parameter `length` can specify an alternate length of bytes written to the socket. If this length is greater than `data`'s length, it is silently truncated to the length of `data`.

&reftitle.returnvalues;

Returns the number of bytes successfully written to the socket&return.falseforfailure;. The error code can be retrieved with `socket_last_error`. This code may be passed to `socket_strerror` to get a textual explanation of the error.

It is perfectly valid for `socket_write` to return zero which means no bytes have been written. Be sure to use the `===` operator to check for &false; in case of an error.

&reftitle.changelog;

&Version; | &Description;
&sockets.changelog.socket-param;
8.0.0 | `length` is nullable now.

&reftitle.notes;

`socket_write` does not necessarily write all bytes from `data`. It's valid that, depending on the network buffers etc., only a certain amount of data, even one byte, is written despite `data` being longer. A loop must be used to ensure that the rest of `data` is transmitted.

&reftitle.seealso;

- `socket_accept`
- `socket_bind`
- `socket_connect`
- `socket_listen`
- `socket_read`
- `socket_strerror`