2009-02-18 23 views
13

El servicio de alojamiento que utilizo actualmente no me permite usar sockets, probablemente por una buena razón de su parte. Sin embargo, me permiten usar fsockopen. Me preguntaba cuál es la diferencia, porque algunos scripts que funcionaron con socket_create e incluso stream_socket_server, no funcionan con fsockopen. Dicho esto, si fsockopen debería funcionar, mi código se enumera a continuación. Lo que hace es escuchar en su propia dirección IP los paquetes udp entrantes y los lee.socket_create vs. fsockopen php

Gracias

$sock = fsockopen("udp://x.x.x.x", $port); 
while(1) 
{ 
    $buf = fread($sock, 200); 
    flush(); 
    ob_flush(); 
} 

Respuesta

11

fsockopen crea una conexión a un host, no es un socket de escucha.

fsockopen ($ dirección) ~ == socket_connect (socket_create(), $ dirección)

su proveedor de alojamiento no quiere que escucha en los puertos/protocolos alternativos.

Si lo que tienes funciona, no contaría con que funcione siempre, ya que sería un error.

+0

gracias "fsockopen == socket_connect (socket_create(), $ address)" era exactamente lo que estaba buscando. parece que necesito encontrar un nuevo host: P – Samuel

+0

donde puedo obtener información más detallada para su respuesta. ¿No hay un programa escuchando en el puerto 80? ¿No es un programa que escucha en 80 una toma de audición? –

+0

@JayapalChandran lo que Samuel quería hacer era escribir el programa que está escuchando en el puerto 80, no conectarse a él. Quería aceptar conexiones (una simplificación, ya que UDP es sin estado). Este podría ser un buen comienzo si desea obtener más información: http://en.wikipedia.org/wiki/Network_socket –