Comunidad de diseño web y desarrollo en internet online

Crear socket UDP con PHP

Citar            
MensajeEscrito el 25 Feb 2013 09:32 pm
Hola tengo una duda, como puedo hacer un socket con PHP, quiero hacerlo UDP, ya investigue algo en la web y encontre esto:

$socket = stream_socket_server("udp://0.0.0.0:3651", $errno, $errstr, STREAM_SERVER_BIND);
if (!$socket) {
die("$errstr ($errno)");
}
echo "\n\nEntro en Loop:\n";
do {
$pkt = stream_socket_recvfrom($socket, 50, 0, $peer);
echo "\nRecivido:\n".$pkt;
if($pkt=="Hola"){
$pkt="y que.";
echo "se pinto en la base de datos:\n".$pkt;
}
stream_socket_sendto($socket,$pkt." -> ".date("D M j H:i:s Y\r\n"), 0, $peer);
} while ($pkt !== false);

y funciona, pero tengo algunos problemas muy extraños.
1.- Cuando coloco el soket en un servidor publico no me responde
2.-En una red local me conecto y todo funciona bien, lo chistoso es que
sin estar activo, ni en web ni en ejecucion, se auto conecta y me responde

Por eso acudo a ustedes a ver si alguien tiene un servidor con otros comandos o sabe cual puede ser mi problema.

Por rod00x3

Claber

595 de clabLevel



Genero:Masculino  

firefox
Citar            
MensajeEscrito el 26 Feb 2013 08:10 pm
cuando lo pones en un server publico, osea primero el puerto que php esta usando por UDP, tiene que estar disponible y tambien que no este bloqueado, si tienes control total del servidor publico tenes que desbloquear dicho puerto,

segundo.- no es que esta activo por arte de magia,sino que esta esperando la instruccion para terminar esta, seguro lo estas haciendo correr como modo Fast-CGI ,osea lo ejecutas atravez del navegador,y al hacerlo correr en el navegador el proceso PHP sigue corriendo hasta que se cumpla la salida del bucle,la mejor forma de controlar es por MEDIO del modo CLI de php,ya que tienes total control del proceso,y veas lo que realmente ocurre

Por tuadmin

Claber

598 de clabLevel



Genero:Masculino  

firefox
Citar            
MensajeEscrito el 03 Mar 2013 11:39 pm
muchas gracias por el tip solo una duda como se corre en modo CLI¿¿

Por rod00x3

Claber

595 de clabLevel



Genero:Masculino  

chrome
Citar            
MensajeEscrito el 04 Mar 2013 01:22 am
modo CLI es (LInea de Comandos), bueno primero , entras a CMD.exe del windows, y vas hasta la direccion de donde tienes los ejecutables de PHP, ahi hay un archivo php, que dira
php.exe o php-cli.exe
ahora para ejecutar un archivo PHP en modo CLI es

Código :

php.exe archivo.php

solo eso :). ahora talvez te lance algunos errores al principio,por que en modo CLI algunas variables de php no estan presentes como el _POST o el $_GET,en resumen, ahi vees al proceso mismo ,y si esta en bucle infinito, lo podes Matar con con CTRL+C y listo asi controlas al proceso y vees lo que hace, mejor si tu archivo php muestra con un 'echo' lo que hace y asi lo veras reflejado en pantalla

Por tuadmin

Claber

598 de clabLevel



Genero:Masculino  

firefox

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.