Foros del Web » Programando para Internet » PHP »

PHP envia socket a Python pero no recibe respueta

Estas en el tema de PHP envia socket a Python pero no recibe respueta en el foro de PHP en Foros del Web. Estoy tratando de hacer una pagina web que se envíe mensajes a un script echo en python. Cuando envío un mensaje desde la pagina (php) ...
  #1 (permalink)  
Antiguo 31/10/2012, 16:45
 
Fecha de Ingreso: julio-2012
Ubicación: San Mateo Ixtatán, Huehuetenango, Guatemala
Mensajes: 12
Antigüedad: 11 años, 9 meses
Puntos: 0
PHP envia socket a Python pero no recibe respueta

Estoy tratando de hacer una pagina web que se envíe mensajes a un script echo en python.

Cuando envío un mensaje desde la pagina (php) lo recibe el programa de python, pero cuando envío una respuesta (desde python) me da este error>

Código Python:
Ver original
  1. s.send(respuesta)
  2. error: [Errno 10057] A request to send or receive data was disallowed because the socket is not connected and (when sending on a datagram socket using a sendto call) no address was supplied

estos son los codigos que estoy usando:
mensaje.php
Código PHP:
Ver original
  1. <?php
  2. if(isset($_POST['mensaje'])){
  3. $host = "localhost";
  4. $port = 9999;
  5. $output=$_POST['mensaje'];
  6. $socket1 = $sock = socket_create(AF_INET, SOCK_STREAM, SOL_TCP) or die("Could not create socket\n");
  7. socket_connect ($socket1 , $host,$port ) ;
  8. #Envia el mensaje (Esto si funciona)
  9. socket_write($socket1, $output, strlen ($output)) or die("Could not write output\n");
  10. $tamaño=3072;
  11. $salida=socket_read($socket1,$tamaño);
  12. echo $output;
  13. echo 'R:>>';
  14. echo $salida.'\n';
  15. socket_close($socket1) ;
  16. }
  17.  
  18. ?>
  19. <form action="" method="post">
  20. <input name="mensaje" type="text" value="">
  21. <input name="" type="submit"></form>

mensaje.py
Código Python:
Ver original
  1. #!/usr/bin/python
  2.  
  3. import socket
  4. import subprocess
  5.  
  6.  
  7. #s = socket.socket()
  8. s=socket.socket(socket.AF_INET,socket.SOCK_STREAM)
  9. s.bind(("localhost", 9999))
  10. s.listen(30)
  11. sc, addr = s.accept()
  12. res = socket.socket()
  13. while True:
  14.     try:
  15.         recibido = sc.recv(255)
  16.     except:
  17.         recibido = None
  18.     if recibido != None:
  19.         print recibido
  20.         if recibido == "fin":
  21.             s.send('Conexio Cerrada')
  22.             break
  23.         else:
  24.             respuesta = raw_input('R: >>')
  25.         s.send(respuesta)
  26.         print resultado
  27.         print ('_')*30
  28.     else:
  29.         s = socket.socket()
  30.         s.bind(("localhost", 9999))
  31.         s.listen(30)
  32.         sc, addr = s.accept()
  33.  
  34. sc.close()
  35. s.close()

Gracias de Antemano Muchá
  #2 (permalink)  
Antiguo 31/10/2012, 16:49
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: PHP envia socket a Python pero no recibe respueta

A leguas se nota que el error es de Python, ¿por qué preguntas en el foro de php?

Y lo mejor de todo esto es que el mensaje de error que da Python es bastante claro, ¿si lo leíste y sabes lo que te indica?
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #3 (permalink)  
Antiguo 31/10/2012, 16:53
 
Fecha de Ingreso: julio-2012
Ubicación: San Mateo Ixtatán, Huehuetenango, Guatemala
Mensajes: 12
Antigüedad: 11 años, 9 meses
Puntos: 0
Respuesta: PHP envia socket a Python pero no recibe respueta

Cita:
Iniciado por pateketrueke Ver Mensaje
A leguas se nota que el error es de Python, ¿por qué preguntas en el foro de php?

Y lo mejor de todo esto es que el mensaje de error que da Python es bastante claro, ¿si lo leíste y sabes lo que te indica?
jejej si, pero es que tengo otro programa python que si funciona a la perfección con este, pero a la hora de hacerlo con php me da ese error, por eso lo puse aqui

Etiquetas: envia, python, socket
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 04:34.