Hacktoberfest 2026: los issues que los mantenedores marcaron para octubre, abiertos y aptos para principiantes. Explorar issues de Hacktoberfest

socket_accept: wrong statements about socket_set_blocking, false and socket_last_error

Cerrado Apto para principiantes
#5,974 0 comentarios 0 reacciones 0 asignados Ver en GitHub

Los mantenedores suelen responder en 1 día

Ya se ha fusionado un pull request relacionado.

  • #5986 de @qodelicious — fusionado

Evaluación

Dificultad
1/5
Tiempo estimado
1-3 horas
Aptitud para principiantes
89/100
Tipo de issue
Documentación
Claridad
Bien especificado
Estado de actividad
Activo
Stack tecnológico
php

Línea de trabajo

Empieza por la página del manual de socket-accept y la página de ejemplos de sockets mencionada en el issue. Actualiza la llamada bloqueante, explica que false significa que no hay ninguna conexión pendiente y usa socket_last_error() sin argumento en ambos lugares. Se considera terminado cuando ambas páginas reflejen estas correcciones.

Escrito por el modelo de indexación a partir del texto del issue.

Descripción

bug
Affected page

https://www.php.net/manual/en/function.socket-accept.php

Issue description
  • socket_set_blocking() doesn't work on a Socket (it is an alias of stream_set_blocking()); only socket_set_nonblock() does.
  • false is returned only when no connection is pending (EAGAIN), without a warning.
  • socket_last_error() gives the error only without argument: after a failed accept, socket_last_error($listener) returns 0. The example in the sockets examples page does exactly that.
Steps to reproduce
$l = socket_create(AF_INET, SOCK_STREAM, 0);
socket_set_blocking($l, false);
// TypeError: Argument #1 ($stream) must be of type resource, Socket given
Suggested fix

Mention socket_set_nonblock() instead, say false means no pending connection, and call socket_last_error() without argument (in the page and in the example).

Lenguaje dominante
XML
Estrellas
602
Forks
904
Merge medio
1 d 3 h
PR fusionados (30 d)
88

Preparar el entorno

Abrir en Codespaces

Inicia el contenedor de desarrollo del proyecto en tu navegador, con tu propia cuenta de GitHub.

  • Sin Dockerfile ni archivo de Docker Compose
  • Sin plantilla de pull request
  • Sin guía de contribución

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Más de php/doc-en

Todos los issues de php/doc-en

Issues similares

Más issues de Documentation

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.