Ir al contenido


Foto

Raudus and ( ICS or Indy )


  • Por favor identifícate para responder
5 respuestas en este tema

#1 quintilla

quintilla

    Newbie

  • Miembros
  • Pip
  • 3 mensajes

Escrito 14 junio 2012 - 12:50

Hola, no estoy muy puesto en esto de los sockets, pero despues de intentar utilizar ICS o Indy con Raudus me tira errores de conexión que con una aplicación de escritorio no me pasa. Me pregunto si es técnicamente posible utilizar este tipo de componentes en Raudus o yo lo estoy haciendo mal.

Un saludo majetes.
  • 0

#2 Sergio

Sergio

    Advanced Member

  • Moderadores
  • PipPipPip
  • 1.092 mensajes
  • LocationMurcia, España

Escrito 14 junio 2012 - 11:08

A ver si estas usando el mismo puerto en raudus -como servidor- y en indy, yo no he hecho esa prueba, pero en princípio no veo porqué no pueda funcionar.

¿que tipo de error te da? ¿siempre o algunas veces? ¿usas algo "persistente" tipo cookies con indy? ¿es un componente tipo cliente o tipo servidor?
  • 0

#3 quintilla

quintilla

    Newbie

  • Miembros
  • Pip
  • 3 mensajes

Escrito 19 junio 2012 - 01:43

Hola Sergio, gracias por contestar.
El problema es el siguiente: quiero hacer una aplicación Raudus que conecte mediante un TCPClient  a un servidor telnet remoto, el servidor telnet es en realidad un autómata y yo lo quiero gestionar a través de la aplicación Raudus mediante un movil. Tengo una aplicación de escritorio básica con tres comandos que funciona perfectamente, pero cuando la convierto a formulario Raudus y pruebo el funcionamiento, no funciona. Un matiz, si utilizo las Indy (versión 9 o 10) la orden 'sale' y se ejecuta en el telnet remoto pero la contestación que devuelve el telnet remoto no me llega. Sin embargo con los componentes ICS ni siquiera 'sale' la orden y encima da un error. Por eso mi duda, la aplicación Raudus se comunica a través de un puerto distinto (88) del que utiliza para comunicar con el telnet remoto (20158) y no se si eso es factible. No sé si me he explicado bien.

Saludos
  • 0

#4 Sergio

Sergio

    Advanced Member

  • Moderadores
  • PipPipPip
  • 1.092 mensajes
  • LocationMurcia, España

Escrito 20 junio 2012 - 04:00

Supongo que tiene que ver con los hilos: en raudus tu aplicacion no usa en exclusiva el hilo principal de ejecución, esta el propio raudus y las demás instancias que puedan existir, y solo cuando se llama a un evento tu aplicación entra en ese hilo.

Si tu aplicación ha de estar en ejecucion en el hilo principal para recibir la respuesta, alpasarse a raudus puede que no esté allí escuchando cuando llegue la respuesta, esta "dormido" a la espera de que un evento raudus lo active.

Para este tipo de cosas, en raudus 0.89 -en la ultima version- puedes hacer que tu aplicacion entre en un "hilo aparte" para poderlo dejar haciendo cosas de fonod sin interferir con el servidor web en si, creo que necesitaras usar esto para poder dejar a la escucha a tu aplicación.

En el wiki de raudus el autor puso la explicación de esto nuevo: http://raudus.wikisp... Multithreading 
  • 0

#5 quintilla

quintilla

    Newbie

  • Miembros
  • Pip
  • 3 mensajes

Escrito 04 julio 2012 - 01:53

Hola, no he podido responder antes.
He estado probando con hebras y el resultado es el mismo, pero se me ha ocurrido que el problema puede estar en el servidor web. El servidor web esta escuchando por el puerto 88 y por él se comunica con las aplicaciones cliente que nos conectemos, pero si hacemos una peticion mediante las Indy o ICS y utilizamos otro puerto distinto( queremos comunicarnos con otro dispositivo) el servidor web no estará escuchando las respuestas por ese otro puerto. La solución mas factible sería que el servidor web escuchase por ambos puertos. Alguien puede decirme si esto que estoy diciendo es un disparate.

Un saludo.
  • 0

#6 Sergio

Sergio

    Advanced Member

  • Moderadores
  • PipPipPip
  • 1.092 mensajes
  • LocationMurcia, España

Escrito 05 julio 2012 - 10:00

¿Quieres programar algo que envie por el 88, pero que sea raudus el que lo recoja? hum... eso no estaba en la pregunta inicial... y lo cambia todo.

Si tu lanzas un mensaje, tu debes recibir la respuesta, por eso cada cosa ha de usar su puerto y no compartirlos para nada, porque si raudus recibe la respuesta a tu envió, no le casará con ninguna de sus sesiones abiertas y lo descartará... supongo, el lio podría ser tremendo.

Harían falta más detalles, cual es la idea en general, qué envías por ese puerto (un email, una peticion web... ) y supongo que deberás, al final, hacer que sea un componente de raudus el encargado de lanzarlo, no tu propio hilo... pero son suposiciones solo!
  • 0