Resultados 1 al 6 de 6

Sockets en Blender 2 49b

  1. #1
    Fecha de ingreso
    Jun 2011
    Mensajes
    36

    Blender Sockets en Blender 2-49b

    Antes de nada: Si esta pregunta ya está expuesta en otro sitio, lo siento. No lo he visto. Y sí, lo he buscado.
    Últimamente me he decidido a aprender a usar los sockets de Blender. Con la guía Python para todos he empezado con los ejemplos y creo que he entendido como funciona, pero. Cuando llego a la línea 7 socket_s, bind(localhost, 9999) empiezan los problemas.

    Cuando pongo como IP localhost, Blender continua hasta la línea 14 [print petición recibida], pero cuando pongo una IP como, por ejemplo, 192.168.29.25 la consola de Blender me dice que el valor indicado no es válido para este contexto.
    ¿Cómo es eso posible si se trata de un valor IP, justo lo que se tiene que poner ahí? (ponerlo sin comillas no funciona).
    ¿Alguien que me lo pueda explicar?
    Otra duda qué me ha surgido según copiaba la parte del bucle:
    ¿Es necesario poner if en la línea 25?
    Esto me surgió por que en el manual no lo pone. Supongo que no es necesario por que ya está en un bucle condicionado, pero no tengo mucho entendimiento de programación en Python.

    Aquí dejo el script servidor que es el que por ahora me está dando todos los problemas:
    Código:
    import socket.
    # creamos el objeto servidor.
    
    Socket_s = socket, socket().
    # Indicamos la IP y el puerto de escucha del servidor.
    
    Socket_s, bind((localhost, 9999)).
    # Hacemos que se ponga a escuchar y cuando recibe un mensaje crea la tupla del host y puerto de escucha de este.
    
    Print Escuchando localhost en el puerto 9999.
    
    Socket_s, listen(10).
    
    Print petición recibida.
    
    Socket_c, (host_c, puerto_c) = socket_s, accept().
    
    Print Conexion aceptada.
    # Ahora, con el objeto socket podemos comunicarnos con el del cliente medienta send y recv.
    while True:
    	recibido = socket_c, recv(1024) tprint Recibido:, recibido tsocket_c, send(recibido) tif recibido == adiós:
    		break.
    # ahora hago que cuando este termine de trabajar se cierre usando el comando close.
    
    Socket_c, close().
    
    Socket_s, close()
    .

    Por si acaso a alguien se le ocurre preguntarme:
    Si he leído el texto. No he copiado el ejemplo del manual sin tratar de entender primero como funciona. Un saludo y gracias.

    Posdata: agradezco que quien responda se suscriba al tema por si me surgen más dudas al respecto.

    Posdata: El manual se encuentra en Scribd. Para quien quiera comprobar los pasos que he seguido.

  2. #2
    Fecha de ingreso
    Jul 2013
    Mensajes
    737

    Sockets en Blender 2-49b

    Cita Iniciado por desiresportal Ver mensaje
    Antes de nada: Si esta pregunta ya está expuesta en otro sitio, lo siento. No lo he visto. Y sí, lo he buscado.

    Últimamente me he decidido a aprender a usar los sockets de Blender. Con la guía Python para todos he empezado con los ejemplos y creo que he entendido como funciona, pero. Cuando llego a la línea 7 socket_s, bind(localhost, 9999) empiezan los problemas.

    Cuando pongo como IP localhost, Blender continua hasta la línea 14 [print petición recibida], pero cuando pongo una IP como, por ejemplo, 192.168.29.25 la consola de Blender me dice que el valor indicado no es válido para este contexto.
    ¿Cómo es eso posible si se trata de un valor IP, justo lo que se tiene que poner ahí? (ponerlo sin comillas no funciona).
    ¿Alguien que me lo pueda explicar?
    Otra duda qué me ha surgido según copiaba la parte del bucle:
    ¿Es necesario poner if en la línea 25?
    Esto me surgió por que en el manual no lo pone. Supongo que no es necesario por que ya está en un bucle condicionado, pero no tengo mucho entendimiento de programación en Python.

    Aquí dejo el script servidor que es el que por ahora me está dando todos los problemas:
    Código:
    import socket.
    # creamos el objeto servidor
    socket_s = socket, socket().
    # Indicamos la IP y el puerto de escucha del servidor
    socket_s, bind((localhost, 9999)).
    # Hacemos que se ponga a escuchar y cuando recibe un mensaje crea la tupla del host y puerto de escucha de este.
    
    Print Escuchando localhost en el puerto 9999\nsocket_s, listen(10).
    
    Print petición recibida.
    
    Socket_c, (host_c, puerto_c) = socket_s, accept()
    print Conexión aceptada.
    # Ahora, con el objeto socket podemos comunicarnos con el del cliente mediante send y recv.
    while True:
     recibido = socket_c, recv(1024)
     print Recibido:, recibido
     socket_c, send(recibido)
     if recibido == adiós:
     break.
    # ahora hago que cuando este termine de trabajar se cierre usando el comando close.
    
    Socket_c, close()
    socket_s, close()
    .

    Por si acaso a alguien se le ocurre preguntarme:
    Si he leído el texto. No he copiado el ejemplo del manual sin tratar de entender primero como funciona. Un saludo y gracias.

    Posdata: agradezco que quien responda se suscriba al tema por si me surgen más dudas al respecto.

    Posdata: El manual se encuentra en Scribd. Para quien quiera comprobar los pasos que he seguido.
    De todo esto de Scribd no se mucho, lo único que puedo decirte es que por localhost se entiende al propio equipo. Y la Ip localhost es 127.0.0.1.
    También veo que usas Linux, tienes el firewall activado? Si es así, tendrás que añadir el puerto 9999 ya que si no bloquea el no puesto.

    Otra cosa qué recuerdo sobre esto, vigila con los espacios al inicio de cada frase activa. Si hay alguno donde no debe, también fallara. Y los # son comentarios referentes a las líneas.

    Si tienes dudas puedes usar el man de algún comando. No sé si existe man socket.
    . Saludos.
    Última edición por Nugu; 04-08-2013 a las 19:00

  3. #3
    Fecha de ingreso
    Jun 2011
    Mensajes
    36

    Blender Sockets en Blender 2-49b

    Gracias por la respuesta. Pero me temo que utilizo Windows, no Linux.

    Lo de # ya lo sabia y para eso estaban ahí, para comentar lo que hace cada parte del script y no liarme a la hora de retomarlo y tratar de entenderlo.

    Lo que comentas de que localhost hace referencia a la propia máquina, realmente ya lo sabia. Por eso pretendía cambiar el localhost por una IP diferente, para qué fuera accesible a otros equipos.

    Lo de los espacios siempre los vigilo. De echo creo que demasiado, pero, alguna vez ya me he pillado un cabreo por cometer ese error y no saber porqué no iba el script.
    ¿Es necesario más equipos en la red?
    Esta es una buena pregunta dado que, con un script que descargue hace tiempo, logré hacer un socket. Más de uno incluso. Pero después de todo este tiempo, con el mismo script, con el mismo ordenador, con el mismo Python instalado, me lanza un error y se cierra. No me da tiempo a leer el mensaje de error puesto que se cierra demasiado rápido.

    Con respecto al firewall de Windows, Blender ya tiene permisos para enviar y recibir de todo, al igual que Python.

    Aunque no me haya sido de gran ayuda, gracias por responder. Siempre viene bien tener más puntos de vista qué el de uno mismo.

    Posdata: Revisaré de nuevo los espacios.

  4. #4
    Fecha de ingreso
    Jul 2013
    Mensajes
    737

    Sockets en Blender 2-49b

    Cita Iniciado por desiresportal Ver mensaje
    Gracias por la respuesta. Pero me temo que utilizo Windows, no Linux.

    Lo de # ya lo sabia y para eso estaban ahí, para comentar lo que hace cada parte del script y no liarme a la hora de retomarlo y tratar de entenderlo.

    Lo que comentas de que localhost hace referencia a la propia máquina, realmente ya lo sabia. Por eso pretendía cambiar el localhost por una IP diferente, para qué fuera accesible a otros equipos.

    Lo de los espacios siempre los vigilo. De echo creo que demasiado, pero, alguna vez ya me he pillado un cabreo por cometer ese error y no saber porqué no iba el script.
    ¿Es necesario más equipos en la red?
    Esta es una buena pregunta dado que, con un script que descargue hace tiempo, logré hacer un socket. Más de uno incluso. Pero después de todo este tiempo, con el mismo script, con el mismo ordenador, con el mismo Python instalado, me lanza un error y se cierra. No me da tiempo a leer el mensaje de error puesto que se cierra demasiado rápido.

    Con respecto al firewall de Windows, Blender ya tiene permisos para enviar y recibir de todo, al igual que Python.

    Aunque no me haya sido de gran ayuda, gracias por responder. Siempre viene bien tener más puntos de vista qué el de uno mismo.

    Posdata: Revisaré de nuevo los espacios.
    Pues vaya, así ya sabes más que yo respecto al tema.

    Sé que no puedo ayudarte con el script. Pero has mirado en herramientas del sistema, el visor de eventos.

    Ahí seguramente que saldrá el error que no has podido ver.

  5. #5
    Fecha de ingreso
    Jun 2011
    Mensajes
    36

    Blender Sockets en Blender 2-49b

    He buscado en el visor de eventos, pero no he encontrado nada.
    ¿Hay algún comando para detener el script cuando hay un error inesperado sin que la ventana se cierre?
    Estoy empezando a optar por reinstalar el sistema operativo, Blender y Python. Después volver a intentarlo.

    De esta forma podré asegurarme que no es ningún programa qué entre en conflicto con Python.

    Haré la prueba y os mantandré informados.

    Posdata: Últimamente he actualizado mucho Windows. ¿Podría ser una actualización la qué me esté dando estos problemas? ¿La qué Windows impida realizar ciertos procesos a Python?

  6. #6
    Fecha de ingreso
    Jul 2013
    Mensajes
    737

    Sockets en Blender 2-49b

    Cita Iniciado por desiresportal Ver mensaje
    He buscado en el visor de eventos, pero no he encontrado nada.
    ¿Hay algún comando para detener el script cuando hay un error inesperado sin que la ventana se cierre?
    Estoy empezando a optar por reinstalar el sistema operativo, Blender y Python. Después volver a intentarlo.

    De esta forma podré asegurarme que no es ningún programa qué entre en conflicto con Python.

    Haré la prueba y os mantendré informados.

    Posdata: Últimamente he actualizado mucho Windows. ¿Podría ser una actualización la qué me esté dando estos problemas? ¿La qué Windows impida realizar ciertos procesos a Python?
    No sé si te servirá, pero el Visor de eventos no lo registra todo para no saturar de errores de información que se hacen muchos.

    Pero puedes crear un filtro y visualizar esos. En Windows 7 si vas a Visor de eventos, Crear vista personalizada, me parece que podrás crear un filtro eligiendo Origen y nombre de aplicación.

    Aquí también puedes elegir, el tipo de mensaje: Información sería el adecuando creo. Tampoco lo tengo mucho por mano todo esto ya que lo aprendí estudiando de forma básica.

    No sé si saldrá Pyton, pero por probar nada se pierde. Una vez aceptado, vuelves a ejecutar el Pyton y si lo has podido elegir. Debería salirte el mensaje de error correspondiente de forma técnica.

    Espero que te sirva de ayuda, saludos.

Temas similares

  1. Nuevo libro sobre Blender: creación de personajes con Blender 2 69
    Por CaminanteBinario en el foro Quieres presentarte
    Respuestas: 5
    : 20-12-2013, 23:52
  2. Blender Demora cuando seleccionas un objeto en Blender posible Blender bug
    Por KAEIKO en el foro Programas de Diseño 3D y CAD
    Respuestas: 8
    : 29-08-2011, 23:57
  3. Respuestas: 1
    : 30-04-2010, 02:46
  4. Blender Abrir archivo de AutoCAD en Blender aprendiendo Blender 01
    Por Sinor Favela en el foro Programas de Diseño 3D y CAD
    Respuestas: 6
    : 21-04-2008, 09:34
  5. Blender Sugerencias Blender mas Python se puede aceder a un archivo Blender desde otro
    Por yeclapa en el foro Programas de Diseño 3D y CAD
    Respuestas: 4
    : 27-04-2006, 21:02