<?php
include_once $_SERVER['DOCUMENT_ROOT'] . '/include/shared-manual.inc';
$TOC = array();
$TOC_DEPRECATED = array();
$PARENTS = array();
include_once dirname(__FILE__) ."/toc/class.swoole-event.inc";
$setup = array (
  'home' => 
  array (
    0 => 'index.php',
    1 => 'PHP Manual',
  ),
  'head' => 
  array (
    0 => 'UTF-8',
    1 => 'es',
  ),
  'this' => 
  array (
    0 => 'swoole-event.write.php',
    1 => 'Swoole\\Event::write',
    2 => 'Escribe datos en un socket de forma as&iacute;ncrona',
  ),
  'up' => 
  array (
    0 => 'class.swoole-event.php',
    1 => 'Swoole\\Event',
  ),
  'prev' => 
  array (
    0 => 'swoole-event.wait.php',
    1 => 'Swoole\\Event::wait',
  ),
  'next' => 
  array (
    0 => 'class.swoole-exception.php',
    1 => 'Swoole\\Exception',
  ),
  'alternatives' => 
  array (
  ),
  'source' => 
  array (
    'lang' => 'es',
    'path' => 'reference/swoole/swoole/event/write.xml',
  ),
  'history' => 
  array (
  ),
);
$setup["toc"] = $TOC;
$setup["toc_deprecated"] = $TOC_DEPRECATED;
$setup["parents"] = $PARENTS;
manual_setup($setup);

contributors($setup);

?>
<div id="swoole-event.write" class="refentry">
 <div class="refnamediv">
  <h1 class="refname">Swoole\Event::write</h1>
  <p class="verinfo">(PECL swoole &gt;= 1.9.0)</p><p class="refpurpose"><span class="refname">Swoole\Event::write</span> &mdash; <span class="dc-title">Escribe datos en un socket de forma asíncrona</span></p>

 </div>

 <div class="refsect1 description" id="refsect1-swoole-event.write-description">
  <h3 class="title">Descripción</h3>
  <div class="methodsynopsis dc-description">
   <span class="modifier">public</span> <span class="modifier">static</span> <span class="modifier">function</span> <span class="methodname"><strong>Swoole\Event::write</strong></span>(<span class="methodparam"><span class="type"><a href="language.types.mixed.php" class="type mixed">mixed</a></span> <code class="parameter">$fd</code></span>, <span class="methodparam"><span class="type"><a href="language.types.mixed.php" class="type mixed">mixed</a></span> <code class="parameter">$data</code></span>): <span class="type"><a href="language.types.boolean.php" class="type bool">bool</a></span></div>

  <p class="simpara">
   Hace que el envío de datos sea asíncrono para los recursos de tipo stream/socket.
  </p>
  <blockquote class="note"><p><strong class="note">Nota</strong>: 
   <p class="simpara">
    Si se escriben datos continuamente en un socket pero el otro extremo no puede leerlos con
    suficiente rapidez, el búfer del socket acabará por llenarse. En ese caso, la capa subyacente
    de Swoole almacenará los datos sobrantes en un búfer en memoria y esperará a que se dispare el
    evento de escritura antes de intentar escribir de nuevo en el socket. Sin embargo, si el búfer
    en memoria también se llena, Swoole lanzará un error
    &quot;pipe buffer overflow, reactor will block&quot; y cambiará a modo bloqueante, deteniendo las
    escrituras posteriores hasta que vuelva a haber espacio disponible.
   </p>
  </p></blockquote>
  <blockquote class="note"><p><strong class="note">Nota</strong>: 
   <p class="simpara">
    El retorno de <strong><code><a href="reserved.constants.php#constant.false">false</a></code></strong> por búfer lleno es una operación atómica: garantiza
    o bien el éxito completo (todos los datos escritos) o bien el fallo total (nada escrito).
   </p>
  </p></blockquote>
  <div class="warning"><strong class="warning">Advertencia</strong>
   <p class="simpara">
    Event::write no puede utilizarse con streams o sockets cifrados mediante SSL/TLS (conexiones tunelizadas).
   </p>
  </div>
  <div class="warning"><strong class="warning">Advertencia</strong>
   <p class="simpara">
    Tras una ejecución correcta, Event::write cambiará automáticamente $socket a modo no bloqueante.
   </p>
  </div>
 </div>


 <div class="refsect1 parameters" id="refsect1-swoole-event.write-parameters">
  <h3 class="title">Parámetros</h3>
  <dl>
   
    <dt><code class="parameter">fd</code></dt>
    <dd>
     <p class="simpara">
      Descriptor de fichero (recurso stream/socket, entero u objeto).
     </p>
    </dd>
   
   
    <dt><code class="parameter">data</code></dt>
    <dd>
     <p class="simpara">
      Datos a enviar (la longitud no debe exceder el tamaño del búfer del socket).
     </p>
    </dd>
   
  </dl>
 </div>


 <div class="refsect1 returnvalues" id="refsect1-swoole-event.write-returnvalues">
  <h3 class="title">Valores devueltos</h3>
  <p class="simpara">
   Esta función retorna <strong><code><a href="reserved.constants.php#constant.true">true</a></code></strong> en caso de éxito o <strong><code><a href="reserved.constants.php#constant.false">false</a></code></strong> si ocurre un error.
  </p>
 </div>


 <div class="refsect1 examples" id="refsect1-swoole-event.write-examples">
  <h3 class="title">Ejemplos</h3>
  <p class="para">
   <div class="example" id="example-1">
    <p><strong>Ejemplo #1 Ejemplo de <span class="function"><strong>Swoole\Event::write()</strong></span></strong></p>
    <div class="example-contents">
     <div class="phpcode"><pre><code style="color: #000000"><span style="color: #0000BB">&lt;?php
</span><span style="color: #007700">use </span><span style="color: #0000BB">Swoole\Event</span><span style="color: #007700">;

</span><span style="color: #0000BB">$fp </span><span style="color: #007700">= </span><span style="color: #0000BB">stream_socket_client</span><span style="color: #007700">(</span><span style="color: #DD0000">'tcp://127.0.0.1:9501'</span><span style="color: #007700">);
</span><span style="color: #0000BB">$data </span><span style="color: #007700">= </span><span style="color: #0000BB">str_repeat</span><span style="color: #007700">(</span><span style="color: #DD0000">'A'</span><span style="color: #007700">, </span><span style="color: #0000BB">1024 </span><span style="color: #007700">* </span><span style="color: #0000BB">1024</span><span style="color: #007700">*</span><span style="color: #0000BB">2</span><span style="color: #007700">);
</span><span style="color: #0000BB">Event</span><span style="color: #007700">::</span><span style="color: #0000BB">add</span><span style="color: #007700">(</span><span style="color: #0000BB">$fp</span><span style="color: #007700">, function(</span><span style="color: #0000BB">$fp</span><span style="color: #007700">) {
     echo </span><span style="color: #0000BB">fread</span><span style="color: #007700">(</span><span style="color: #0000BB">$fp</span><span style="color: #007700">);
});
</span><span style="color: #0000BB">Event</span><span style="color: #007700">::</span><span style="color: #0000BB">write</span><span style="color: #007700">(</span><span style="color: #0000BB">$fp</span><span style="color: #007700">, </span><span style="color: #0000BB">$data</span><span style="color: #007700">);
</span><span style="color: #0000BB">?&gt;</span></code></pre></div>
    </div>

   </div>
  </p>
 </div>

</div><?php manual_footer($setup); ?>