PHP Conference Nagoya 2025

Opciones de contexto de sockets

Opciones de contexto de socketsListado de opciones de contexto de sockets

Descripción

Las opciones de contexto de sockets están disponibles para todas las envolturas que trabajan sobre sockets, como tcp, http y ftp.

Opciones

bindto

Usada para especificar la dirección IP (ya sea IPv4 o IPv6) y/o el número de puerto que PHP usará para acceder a la red. La sintaxis es ip:puerto para direcciones IPv4, y [ip]:puerto para direcciones IPv6. Establecer el número IP o de puerto como 0 producirá que el sistema lo elija por usted.

Nota:

Dado que FTP crea dos conexiones de socket durante la operación normal, no es posible especificar el número de puerto con esta opción.

backlog

Usado para limitar el número de conexiones pendientes en la cola de escucha del socket.

Nota:

Solamente se aplica a stream_socket_server().

Historial de cambios

Versión Descripción
5.3.3 Se agregó bindto.
5.1.0 Se agregó backlog.

Ejemplos

Ejemplo #1 Ejemplo de uso básico de bindto

<?php
// conectarse a internet usando la IP '192.168.0.100'
$opciones = array(
'socket' => array(
'bindto' => '192.168.0.100:0',
),
);


// conectarse a internet usando la IP '192.168.0.100' y el puerto '7000'
$opciones = array(
'socket' => array(
'bindto' => '192.168.0.100:7000',
),
);


// conectarse a internet usando la dirección IPv6 '2001:db8::1'
// y el puerto '7000'
$opciones = array(
'socket' => array(
'bindto' => '[2001:db8::1]:7000',
),
);


// conectarse a internet usando el puerto '7000'
$opciones = array(
'socket' => array(
'bindto' => '0:7000',
),
);


// crear el contexto...
$contexto = stream_context_create($opciones);

// ...y usarlo para recuperar los datos
echo file_get_contents('http://www.example.com', false, $contexto);

?>

add a note

User Contributed Notes 2 notes

up
9
mix at ater dot me
5 years ago
The right way for forcing IPv6 is 'bindto' => '[::]:0'
up
2
guru at jnt-finland dot fi
9 years ago
You can set "bindto" to "0:0" to force use IPv4 instead of IPv6. And probably "[0]:0" to force use IPv6, thou this I couldn't test.
To Top