1
0
mirror of https://github.com/php/doc-es.git synced 2026-03-25 16:02:13 +01:00
Files
archived-doc-es/reference/sockets/functions/socket-create.xml
2015-09-16 20:32:42 +00:00

252 lines
9.0 KiB
XML

<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
<!-- EN-Revision: e41aab5ecacf449e51179886c17f1d41735b0234 Maintainer: seros Status: ready -->
<!-- Reviewed: no -->
<refentry xmlns="http://docbook.org/ns/docbook" xml:id="function.socket-create">
<refnamediv>
<refname>socket_create</refname>
<refpurpose>Crear un socket (extremo de comunicación)</refpurpose>
</refnamediv>
<refsect1 role="description">
&reftitle.description;
<methodsynopsis>
<type>resource</type><methodname>socket_create</methodname>
<methodparam><type>int</type><parameter>domain</parameter></methodparam>
<methodparam><type>int</type><parameter>type</parameter></methodparam>
<methodparam><type>int</type><parameter>protocol</parameter></methodparam>
</methodsynopsis>
<para>
Crea y devuelve un recurso socket, también referido como un extremo
de comunicación. Una conexión típica de red está constituida por 2 sockets, uno
realizando el papel del cliente, y otro realizando el papel del servidor.
</para>
</refsect1>
<refsect1 role="parameters">
&reftitle.parameters;
<para>
<variablelist>
<varlistentry>
<term><parameter>domain</parameter></term>
<listitem>
<para>
El parámetro <parameter>domain</parameter> especifica la familia de
protocolos que va a usar por el socket.
</para>
<table>
<title>Available address/protocol families</title>
<tgroup cols="2">
<thead>
<row>
<entry>Dominio</entry>
<entry>Descripción</entry>
</row>
</thead>
<tbody>
<row>
<entry><constant>AF_INET</constant></entry>
<entry>
Protocolos basados en Internet IPv4. TCP y UDP son protocolos comunes de
esta familia de protocolos.
</entry>
</row>
<row>
<entry><constant>AF_INET6</constant></entry>
<entry>
Protocolos basados en Internet IPv6. TCP y UDP son protocolos comunes de
esta familia de protocolos.
</entry>
</row>
<row>
<entry><constant>AF_UNIX</constant></entry>
<entry>
Familia de protocolos de comunicación local. Alta eficacia y baja
sobrecarga la hacen una gran forma de IPC (Interprocess Communication - Comunicación entre procesos).
</entry>
</row>
</tbody>
</tgroup>
</table>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>type</parameter></term>
<listitem>
<para>
El parámetro <parameter>type</parameter> selecciona el tipo de comunicación
que va a usar el socket.
</para>
<table>
<title>Tipos de sockets disponibles</title>
<tgroup cols="2">
<thead>
<row>
<entry>Tipo</entry>
<entry>Descripción</entry>
</row>
</thead>
<tbody>
<row>
<entry><constant>SOCK_STREAM</constant></entry>
<entry>
Proporciona flujos de bytes orientados a conexión, secuenciados, fiables y full-duplex.
Puede soportar un mecanismo de transmisión fuera de banda.
El protocolo TCP está basado en este tipo de socket.
</entry>
</row>
<row>
<entry><constant>SOCK_DGRAM</constant></entry>
<entry>
Soporta datagramas (no orientado a conexión, mensajes no fiables de una longitud máxima).
El protocolo UDP está basado en este tipo de socket.
</entry>
</row>
<row>
<entry><constant>SOCK_SEQPACKET</constant></entry>
<entry>
Proporciona una ruta de transmisión de datos orientada a conexión secuenciada, fiable, de dos
direcciones para datagramas de longitud máxima fija; se requiere un consumidor para leer
un paquete entero con cada llamada de lectura.
</entry>
</row>
<row>
<entry><constant>SOCK_RAW</constant></entry>
<entry>
Proporciona acceso al protocolo de red sin formato. Este tipo especial de socket
se puede usar para construir manualmente cualquier tipo de protocolo. Un uso común
para este socket es realizar solicitudes ICMP (como ping).
</entry>
</row>
<row>
<entry><constant>SOCK_RDM</constant></entry>
<entry>
Proporcional una capa de datagramas fiable que no garantiza el orden.
Lo más seguro es que esto no esté implementado en su sistema operativo.
</entry>
</row>
</tbody>
</tgroup>
</table>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>protocol</parameter></term>
<listitem>
<para>
El parámetro <parameter>protocol</parameter> establece el protocolo
específico dentro del <parameter>domain</parameter> especificado a usar
al comunicarse con el socket devuelto. El valor apropiado puede ser
recuperado por su nombre usando <function>getprotobyname</function>. Si
el protocolo deseado es TCP o UDP, también se pueden usar las constantes
<constant>SOL_TCP</constant>, y <constant>SOL_UDP</constant>
correspondientes.
</para>
<table>
<title>Protocolos comunes</title>
<tgroup cols="2">
<thead>
<row>
<entry>Nombre</entry>
<entry>Descripción</entry>
</row>
</thead>
<tbody>
<row>
<entry>icmp</entry>
<entry>
Internet Control Message Protocol (Protocolo de Mensajes de Control de Internet)
es usado principalmente por pasarelas y hosts para notificar errores en la comunicación por
datagramas. El comando "ping" (presente en la mayoría de los sistemas operativos modernos) es
un ejemplo de la aplicación del ICMP.
</entry>
</row>
<row>
<entry>udp</entry>
<entry>
User Datagram Protocol (Protocolo de Datagramas de Usuario) es un protocolo no orientado
a conexión, no fiable, con longitud de registros fija. A causa de estos aspectos, UDP
requiere una cantidad mínima de sobrecarga del protocolo.
</entry>
</row>
<row>
<entry>tcp</entry>
<entry>
Transmission Control Protocol (Protocolo de Control de Transmisión) es un protocolo fiable
orientado a conexión, orientado a flujo, full duplex. TCP garantiza que todos los paquetes
de datos serán recibidos en el orden en el que fueron enviados. Si algún paquete se pierde
por alguna razón durante la comunicación, TCP automáticamente retransmitirá el paquete hasta
que el host destino adminta ese paquete. Por razones de fiabilidad y rendimiento,
la implementación de TCP decide por sí misma los límites apropiados de los octetos
de la capa de comunicación de datagramas subyacente. Por lo tanto, las aplicaciones TCP deben
tener en cuenta la posibilidad de transmisión de resgistros parciales.
</entry>
</row>
</tbody>
</tgroup>
</table>
</listitem>
</varlistentry>
</variablelist>
</para>
</refsect1>
<refsect1 role="returnvalues">
&reftitle.returnvalues;
<para>
<function>socket_create</function> devuelve un recurso socket en caso de éxito,
o &false; en caso de error. El código de error real se puede recuperar llamando a
<function>socket_last_error</function>. Este código de error se puede pasar a
<function>socket_strerror</function> para obtener una explicación textual del
error.
</para>
</refsect1>
<refsect1 role="errors">
&reftitle.errors;
<para>
Si se da un <parameter>domain</parameter> o
<parameter>type</parameter> no válido, <function>socket_create</function>
los pone por defecto a <constant>AF_INET</constant> y
<constant>SOCK_STREAM</constant> respectivamente y además emite un
mensaje <constant>E_WARNING</constant>.
</para>
</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_last_error</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
-->