Inicia una conexi贸n secuenciada o tipo datagrama al destino especificado por socket_remoto. El tipo de socket creado es determinado por el transporte especificado usando el formato de URL est谩ndar: transporte://destino. Para sockets de dominio de Internet (AF_INET) tales como TCP y UDP, la porci贸n destino del par谩metro socket_remoto debe consistir de un nombre de host o direcci贸n IP seguido de un signo de dos puntos y un n煤mero de puerto. Para sockets de dominio Unix, la porci贸n destino debe apuntar al archivo de socket en el sistema de archivos. El tiempo_espera opcional puede ser usado para establecer un tiempo de espera m谩ximo en segundos para el llamado de conexi贸n del sistema. banderas es un campo de m谩scara de bits que puede ser definido como una combinaci贸n de banderas de conexi贸n. Actualmente, las banderas de conexi贸n disponibles est谩n limitadas a STREAM_CLIENT_CONNECT (predeterminada), STREAM_CLIENT_ASYNC_CONNECT y STREAM_CLIENT_PERSISTENT.
Nota: Si necesita establecer un tiempo de espera para la lectura/escritura de datos sobre el socket, use stream_set_timeout(), ya que el par谩metro tiempo_espera de stream_socket_client() s贸lo se aplica cuando se establece la conexi贸n con el socket.
stream_socket_client() devuelve un recurso de secuencia que puede ser usado junto con las otras funciones de archivos (tales como fgets(), fgetss(), fwrite(), fclose(), y feof()).
Si la llamada falla, devolver谩 FALSE y si los argumentos opcionales errno y errstr est谩n presentes, 茅stos ser谩n definidos de modo tal que indiquen el error de nivel de sistema actual que ocurri贸 en el llamado de nivel de sistema connect(). Si el valor devuelto en errno es 0 y la funci贸n devolvi贸 FALSE, es un indicio de que el error ocurri贸 antes del llamado a connect(). Esto es por lo general debido a un problema con la inicializaci贸n del socket. Note que los argumentos errno y errstr ser谩n siempre pasados por referencia.
Dependiendo del entorno, el dominio Unix o el tiempo de espera de conexi贸n opcional pueden no estar disponibles. Una lista de transportes disponibles puede ser recuperada usando stream_get_transports(). Vea Ap茅ndice O para consultar una lista de transportes incorporados.
La secuencia ser谩 abierta por defecto en modo de bloqueo. Puede modificarla a modo de no-bloqueo usando stream_set_blocking().
| Aviso |
Los sockets UDP parecer谩n haber sido abiertos sin error en ocasiones, incluso si el host remoto no ha podido ser contactado. El error solo se har谩 aparente cuando lea o escriba datos desde/hacia el socket. La raz贸n de esto es que UDP es un protocolo "sin conexi贸n", lo que quiere decir que el sistema operativo no intenta establecer un enlace para el socket hasta que realmente necesita enviar o recibir datos. |
Nota: Cuando se especifique una direcci贸n num茅rica IPv6 (p.ej. fe80::1) se debe incluir la IP entre corchetes. Por ejemplo tcp://[fe80::1]:80.
Vea tambi茅n stream_socket_server(), stream_set_blocking(), stream_set_timeout(), stream_select(), fgets(), fgetss(), fwrite(), fclose(), feof(), y la extensi贸n Curl.