mirror of
https://github.com/php/doc-en.git
synced 2026-03-24 07:42:10 +01:00
The note was not parseable for me, and the use of "buffer" for both the network buffers and the input data (in the same sentence) made it too confusing for me to interpret initially.
149 lines
4.2 KiB
XML
149 lines
4.2 KiB
XML
<?xml version="1.0" encoding="utf-8"?>
|
|
<!-- $Revision$ -->
|
|
<refentry xml:id="function.socket-write" xmlns="http://docbook.org/ns/docbook">
|
|
<refnamediv>
|
|
<refname>socket_write</refname>
|
|
<refpurpose>Write to a socket</refpurpose>
|
|
</refnamediv>
|
|
|
|
<refsect1 role="description">
|
|
&reftitle.description;
|
|
<methodsynopsis>
|
|
<type class="union"><type>int</type><type>false</type></type><methodname>socket_write</methodname>
|
|
<methodparam><type>Socket</type><parameter>socket</parameter></methodparam>
|
|
<methodparam><type>string</type><parameter>data</parameter></methodparam>
|
|
<methodparam choice="opt"><type class="union"><type>int</type><type>null</type></type><parameter>length</parameter><initializer>&null;</initializer></methodparam>
|
|
</methodsynopsis>
|
|
<para>
|
|
The function <function>socket_write</function> writes to the
|
|
<parameter>socket</parameter> from the given
|
|
<parameter>data</parameter>.
|
|
</para>
|
|
</refsect1>
|
|
|
|
<refsect1 role="parameters">
|
|
&reftitle.parameters;
|
|
<para>
|
|
<variablelist>
|
|
<varlistentry>
|
|
<term><parameter>socket</parameter></term>
|
|
<listitem>
|
|
<para>
|
|
</para>
|
|
</listitem>
|
|
</varlistentry>
|
|
<varlistentry>
|
|
<term><parameter>data</parameter></term>
|
|
<listitem>
|
|
<para>
|
|
The buffer to be written.
|
|
</para>
|
|
</listitem>
|
|
</varlistentry>
|
|
<varlistentry>
|
|
<term><parameter>length</parameter></term>
|
|
<listitem>
|
|
<para>
|
|
The optional parameter <parameter>length</parameter> can specify an
|
|
alternate length of bytes written to the socket. If this length is
|
|
greater than <parameter>data</parameter>'s length,
|
|
it is silently truncated to the length of <parameter>data</parameter>.
|
|
</para>
|
|
</listitem>
|
|
</varlistentry>
|
|
</variablelist>
|
|
</para>
|
|
</refsect1>
|
|
|
|
<refsect1 role="returnvalues">
|
|
&reftitle.returnvalues;
|
|
<para>
|
|
Returns the number of bytes successfully written to the socket&return.falseforfailure;.
|
|
The error code can be retrieved with
|
|
<function>socket_last_error</function>. This code may be passed to
|
|
<function>socket_strerror</function> to get a textual explanation of the
|
|
error.
|
|
</para>
|
|
<note>
|
|
<para>
|
|
It is perfectly valid for <function>socket_write</function> to
|
|
return zero which means no bytes have been written. Be sure to use the
|
|
<literal>===</literal> operator to check for &false; in case of an
|
|
error.
|
|
</para>
|
|
</note>
|
|
</refsect1>
|
|
|
|
<refsect1 role="changelog">
|
|
&reftitle.changelog;
|
|
<informaltable>
|
|
<tgroup cols="2">
|
|
<thead>
|
|
<row>
|
|
<entry>&Version;</entry>
|
|
<entry>&Description;</entry>
|
|
</row>
|
|
</thead>
|
|
<tbody>
|
|
&sockets.changelog.socket-param;
|
|
<row>
|
|
<entry>8.0.0</entry>
|
|
<entry>
|
|
<parameter>length</parameter> is nullable now.
|
|
</entry>
|
|
</row>
|
|
</tbody>
|
|
</tgroup>
|
|
</informaltable>
|
|
</refsect1>
|
|
|
|
<refsect1 role="notes">
|
|
&reftitle.notes;
|
|
<note>
|
|
<para>
|
|
<function>socket_write</function> does not necessarily write all bytes
|
|
from <parameter>data</parameter>. It's valid that, depending on the network
|
|
buffers etc., only a certain amount of data, even one byte, is written
|
|
despite <parameter>data</parameter> being longer.
|
|
A loop must be used to ensure that the rest of <parameter>data</parameter>
|
|
is transmitted.
|
|
</para>
|
|
</note>
|
|
</refsect1>
|
|
|
|
<refsect1 role="seealso">
|
|
&reftitle.seealso;
|
|
<para>
|
|
<simplelist>
|
|
<member><function>socket_accept</function></member>
|
|
<member><function>socket_bind</function></member>
|
|
<member><function>socket_connect</function></member>
|
|
<member><function>socket_listen</function></member>
|
|
<member><function>socket_read</function></member>
|
|
<member><function>socket_strerror</function></member>
|
|
</simplelist>
|
|
</para>
|
|
</refsect1>
|
|
|
|
</refentry>
|
|
<!-- Keep this comment at the end of the file
|
|
Local variables:
|
|
mode: sgml
|
|
sgml-omittag:t
|
|
sgml-shorttag:t
|
|
sgml-minimize-attributes:nil
|
|
sgml-always-quote-attributes:t
|
|
sgml-indent-step:1
|
|
sgml-indent-data:t
|
|
indent-tabs-mode:nil
|
|
sgml-parent-document:nil
|
|
sgml-default-dtd-file:"~/.phpdoc/manual.ced"
|
|
sgml-exposed-tags:nil
|
|
sgml-local-catalogs:nil
|
|
sgml-local-ecat-files:nil
|
|
End:
|
|
vim600: syn=xml fen fdm=syntax fdl=2 si
|
|
vim: et tw=78 syn=sgml
|
|
vi: ts=1 sw=1
|
|
-->
|