socket_create
(PHP 4 >= 4.1.0, PHP 5)
socket_create — Crear un socket (extremo de comunicación)
Descripción
$domain
, int $type
, int $protocol
)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.
Parámetros
-
domain -
El parámetro
domainespecifica la familia de protocolos que va a usar por el socket.Available address/protocol families Dominio Descripción AF_INETProtocolos basados en Internet IPv4. TCP y UDP son protocolos comunes de esta familia de protocolos. AF_INET6Protocolos basados en Internet IPv6. TCP y UDP son protocolos comunes de esta familia de protocolos. AF_UNIXFamilia de protocolos de comunicación local. Alta eficacia y baja sobrecarga la hacen una gran forma de IPC (Interprocess Communication - Comunicación entre procesos). -
type -
El parámetro
typeselecciona el tipo de comunicación que va a usar el socket.Tipos de sockets disponibles Tipo Descripción SOCK_STREAMProporciona 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. SOCK_DGRAMSoporta datagramas (no orientado a conexión, mensajes no fiables de una longitud máxima). El protocolo UDP está basado en este tipo de socket. SOCK_SEQPACKETProporciona 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. SOCK_RAWProporciona 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). SOCK_RDMProporcional una capa de datagramas fiable que no garantiza el orden. Lo más seguro es que esto no esté implementado en su sistema operativo. -
protocol -
El parámetro
protocolestablece el protocolo específico dentro deldomainespecificado a usar al comunicarse con el socket devuelto. El valor apropiado puede ser recuperado por su nombre usando getprotobyname(). Si el protocolo deseado es TCP o UDP, también se pueden usar las constantesSOL_TCP, ySOL_UDPcorrespondientes.Protocolos comunes Nombre Descripción icmp 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. udp 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. tcp 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 permitir la posibilidad de transmisión de resgistros parciales.
Valores devueltos
socket_create() 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
socket_last_error(). Este código de error se puede pasar a
socket_strerror() para obtener una explicación textual del
error.
Errores/Excepciones
Si se da un domain o
type no válido, socket_create()
los pone por defecto a AF_INET y
SOCK_STREAM respectivamente y además emite un
mensaje E_WARNING.
Ver también
- socket_accept() - Acepta una conexión de un socket
- socket_bind() - Vincula un nombre a un socket
- socket_connect() - Inicia una conexión sobre un socket
- socket_listen() - Escucha una conexión sobre un socket
- socket_last_error() - Devuelve el último error sobre un socket
- socket_strerror() - Devuelve una cadena que describe un error de socket