From cf837d16f0f5b2ee8c567d70845c8caca654ac87 Mon Sep 17 00:00:00 2001 From: lacatoire Date: Wed, 2 Sep 2026 09:42:56 +0200 Subject: [PATCH] sync: translate socket_sendmsg documentation to Spanish Closes #1205 --- .../sockets/functions/socket-sendmsg.xml | 226 +++++++++++++++++- 1 file changed, 216 insertions(+), 10 deletions(-) diff --git a/reference/sockets/functions/socket-sendmsg.xml b/reference/sockets/functions/socket-sendmsg.xml index b49a8c98e7..c8a4c2d87d 100644 --- a/reference/sockets/functions/socket-sendmsg.xml +++ b/reference/sockets/functions/socket-sendmsg.xml @@ -1,7 +1,5 @@ - - - + socket_sendmsg @@ -15,9 +13,11 @@ arraymessage intflags0 - - - &warn.undocumented.func; + + La función socket_sendmsg envía el mensaje descrito por + message a través del socket socket, + utilizando la llamada al sistema sendmsg(). + @@ -27,21 +27,153 @@ socket - - + + Una instancia de Socket creada con socket_create, + socket_accept o socket_create_pair. + message - - + + Un array asociativo que puede contener los siguientes elementos. Todos son + opcionales, y las claves no reconocidas se ignoran silenciosamente. En particular, + no existe ningún elemento flags al enviar; esa clave solo + aparece en el array rellenado por socket_recvmsg. + + + + name + + + La dirección del host remoto, en forma de array. Sus claves son + addr y port para + AF_INET; addr, + port, flowinfo e + scope_id para AF_INET6; y + path para AF_UNIX. + addr acepta una dirección IP o un nombre de host, que se + resuelve. Una clave opcional family selecciona explícitamente + la familia de direcciones; si se omite, se utiliza la familia del + socket. Una familia no compatible con el socket + hace que la llamada falle. + + + + + iov + + + Una lista de búferes con los datos a enviar, que se envían en orden como un + único mensaje. Las claves del array se ignoran y los valores se convierten a + cadena. Cuando esta clave falta o está vacía, no se envían datos y la función + devuelve 0. + + + + + control + + + Una lista de mensajes de datos auxiliares. Cada uno es un array con las claves + level, type y + data. Solo se admiten los pares indicados a continuación, y + su disponibilidad depende de la plataforma. + + + Datos auxiliares admitidos + + + + level + type + data + + + + + SOL_SOCKET + SCM_RIGHTS + + Una lista no vacía de instancias de Socket o recursos + de flujo, cuyos descriptores de fichero se envían al proceso receptor. + + + + SOL_SOCKET + SCM_CREDENTIALS + + Un array con las claves pid, + uid y gid. Denominado + SCM_CREDS o SCM_CREDS2 + en algunos sistemas. + + + + IPPROTO_IPV6 + IPV6_PKTINFO + + Un array con las claves addr e + ifindex. + + + + IPPROTO_IPV6 + IPV6_HOPLIMIT + Un int. + + + IPPROTO_IPV6 + IPV6_TCLASS + Un int. + + + +
+
+
+
flags + El valor de flags puede ser cualquier combinación de los + siguientes indicadores, unidos con el operador OR binario (|). + + Valores posibles para <parameter>flags</parameter> + + + + MSG_OOB + + Envía datos OOB (fuera de banda). + + + + MSG_EOR + + Indica una marca de registro. Los datos enviados completan el registro. + + + + MSG_DONTWAIT + + Con este indicador activo, la función devuelve el control aunque normalmente + se hubiera bloqueado. + + + + MSG_DONTROUTE + + Omite el enrutamiento y usa la interfaz directa. + + + + +
@@ -73,6 +205,80 @@
+ + &reftitle.examples; + + Enviar un mensaje con <function>socket_sendmsg</function> + + ['addr' => '127.0.0.1', 'port' => 1053], + 'iov' => ['Hello ', 'world'], +], 0); + +echo "sent: $sent\n"; + +socket_recvfrom($server, $buffer, 64, 0, $from, $port); +echo "received: $buffer\n"; +?> +]]> + + &example.outputs; + + + + + + Pasar un descriptor de fichero a través de un socket UNIX + + La clave control transporta datos auxiliares. Con + SCM_RIGHTS, transfiere descriptores de fichero abiertos al + proceso en el otro extremo de un socket UNIX. Esto no está disponible en Windows. + + + ['fd'], + 'control' => [ + ['level' => SOL_SOCKET, 'type' => SCM_RIGHTS, 'data' => [$file]], + ], +], 0); + +$message = [ + 'buffer_size' => 16, + 'controllen' => socket_cmsg_space(SOL_SOCKET, SCM_RIGHTS, 1), +]; +socket_recvmsg($receiver, $message, 0); + +$received = $message['control'][0]['data'][0]; +echo "primera línea: ", fgets($received); +?> +]]> + + &example.outputs; + + + + + + &reftitle.seealso;