Ir al contenido


Foto

TCP Broker


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

#1 seoane

seoane

    Advanced Member

  • Administrador
  • 1.259 mensajes
  • LocationEspaña

Escrito 18 julio 2012 - 01:46

Este programa es un pequeño broker, que permite compartir mensjaes entre los clientes que se conectan a el.

El código muestra como montar un servidor TCP (usando solo la API) en un servicio de windows, como ejecutar cada una de las conexiones en un thread diferente, así como la manera de sincronizar los threads entre si. Es un buen ejemplo para los que se están iniciando en el tema de las  conexiones TCP/IP.

El enlace es el siguiente, ahi explico un poco más el funcionamiento del programa, y como instalarlo:
http://delphi.jmrds.com/?q=node/82

Saludos

PD: Ya me diréis que os parece  :)
  • 1

#2 eduarcol

eduarcol

    Advanced Member

  • Administrador
  • 4.483 mensajes
  • LocationVenezuela

Escrito 19 julio 2012 - 12:56

Esta interesante, hay que estudiarlo con detenimiento
  • 0

#3 poliburro

poliburro

    Advanced Member

  • Administrador
  • 4.945 mensajes
  • LocationMéxico

Escrito 19 julio 2012 - 12:58

esto es como el UDP broacast?
  • 0

#4 seoane

seoane

    Advanced Member

  • Administrador
  • 1.259 mensajes
  • LocationEspaña

Escrito 19 julio 2012 - 02:02

esto es como el UDP broacast?

Parecido ... Este "broker" reenvía los mensajes de cada cliente al resto de clientes conectados en ese momento al servidor. El broadcast de UDP manda el mismo mensaje a toda la red sin necesidad de un servidor que actué de intermediario, mientras que con mi "broker" solo lo reciben aquellos que estén conectados al servidor. Cada sistema tiene sus ventajas, la mas evidente al usar TCP es la posibilidad de hacerlo a través de internet, ya que el broadcast de UDP se limita a las redes locales. Como ya dije, el uso mas típico de este tipo de servidores son los chat, donde los mensajes que cada uno envía aparecen en las pantallas del resto de participantes.

El siguiente paso sera montar algún tipo de protocolo para regular el trafico de los mensajes, porque tal cual está ahora estos se pueden entremezclar (sobre todo si son muy largos) si se envían todos juntos. Como primer paso he cambiado un poco el código para que cada mensaje que se envié tenga que estar formado por una sola linea, terminada por el carácter #10. De esta manera nos aseguramos de que los mensajes llegan y se reenvían completos y no partidos en trozos mas pequeños. Ahora solo queda crear una estructura para darle forma a esos mensajes, estoy pensando en usar por ejemplo xml, aunque debería de meter todo el código xml dentro de una sola linea o quizá codificar el xml completo en base64.

Le seguiré dando vueltas, aunque veo que no interesa mucho el tema :(  ...

... quizá buscándole alguna aplicación mas "practica" despertaría mas interés, tendré que pensar algo.
  • 0

#5 poliburro

poliburro

    Advanced Member

  • Administrador
  • 4.945 mensajes
  • LocationMéxico

Escrito 19 julio 2012 - 02:32

Yo le veo una utilidad...

Podría servir  más que para chatear, para monitoerear servidores. es decir... cada programa cliente respondería con el estatus del sistema que lo hospeda de tal manera que al recibir el servidor un mensaje de error o no tener respuesta.. enviaría una alerta a una determinada lkista de correos...


Qué os parece mi amigo
  • 0

#6 seoane

seoane

    Advanced Member

  • Administrador
  • 1.259 mensajes
  • LocationEspaña

Escrito 19 julio 2012 - 03:04

Yo le veo una utilidad...

Podría servir  más que para chatear, para monitoerear servidores. es decir... cada programa cliente respondería con el estatus del sistema que lo hospeda de tal manera que al recibir el servidor un mensaje de error o no tener respuesta.. enviaría una alerta a una determinada lkista de correos...


Qué os parece mi amigo


Yo también había pensando en un sistema de monitorizacion o de alarma, donde cada cliente informaría de sus estado al resto, así como de cualquier error o advertencia. Hay multitud de posibilidades, solamente ahí que crear una buena base y lo demás vendrá solo  :)
  • 0

#7 egostar

egostar

    missing my father, I love my mother.

  • Administrador
  • 14.445 mensajes
  • LocationMéxico

Escrito 19 julio 2012 - 04:48


Yo le veo una utilidad...

Podría servir  más que para chatear, para monitoerear servidores. es decir... cada programa cliente respondería con el estatus del sistema que lo hospeda de tal manera que al recibir el servidor un mensaje de error o no tener respuesta.. enviaría una alerta a una determinada lkista de correos...

Qué os parece mi amigo


Yo también había pensando en un sistema de monitorizacion o de alarma, donde cada cliente informaría de sus estado al resto, así como de cualquier error o advertencia. Hay multitud de posibilidades, solamente ahí que crear una buena base y lo demás vendrá solo  :)


Pues mira, muy interesante la idea para el uso de éste juguetito que nos regala el buen amigo Domingo :)

Saludos
  • 0

#8 escafandra

escafandra

    Advanced Member

  • Administrador
  • 4.107 mensajes
  • LocationMadrid - España

Escrito 19 julio 2012 - 05:02

Cuando tenga mano pi PC lo descargo y lo pruebo.  (y)

Saludos.
  • 0

#9 seoane

seoane

    Advanced Member

  • Administrador
  • 1.259 mensajes
  • LocationEspaña

Escrito 19 julio 2012 - 11:46

Cuando tenga mano pi PC lo descargo y lo pruebo.  (y)

Lo estaré esperando  :)
  • 0

#10 genriquez

genriquez

    Advanced Member

  • Miembro Platino
  • PipPipPip
  • 539 mensajes
  • LocationCali, Colombia

Escrito 16 agosto 2016 - 06:21

Hola seoane, estoy interesado en el demo, para aprender sobre este tema, pero no ha sido posible bajarlo. Saludos.


  • 0

#11 seoane

seoane

    Advanced Member

  • Administrador
  • 1.259 mensajes
  • LocationEspaña

Escrito 16 agosto 2016 - 10:02

Aqui te lo subo. Es una version mas moderna pero mas o menos es lo mismo.

 

Para usuarlo hay que instalar el servidor:


php
  1. TCPBroker.exe /install

Y luego lo arrancamos desde el administrador de servicios

 

Por ultimo solo tenemos que conectar clientes, por ejemplo la demo que vienbe es de un chat


php
  1. cliente 127.0.0.1 55555 Nick Nombredelchat Clave

Saludos

Archivos adjuntos


  • 2

#12 genriquez

genriquez

    Advanced Member

  • Miembro Platino
  • PipPipPip
  • 539 mensajes
  • LocationCali, Colombia

Escrito 16 agosto 2016 - 01:12

Excelente, muchas gracias.

 

Saludos.


  • 0

#13 sir.dev.a.lot

sir.dev.a.lot

    Advanced Member

  • Miembros
  • PipPipPip
  • 545 mensajes
  • Location127.0.0.1

Escrito 19 agosto 2016 - 07:27

Hola, Seoane.

 

El enlace a como funciona el Programa ya no esta disponible, serias tan amable de incluir la informacion de uso en un nuevo mensaje.

 

este es el enlace

http://delphi.jmrds.com/?q=node/82

 

Gracias de Antemano.

Saludos!

 

NOTA EDITADO:, Okay, Seoane, ya he visto el codigo fuente. No hay necesidad de explicar.   Pero por si acaso, tenes por ahi una version con GUI ?


  • 1

#14 egostar

egostar

    missing my father, I love my mother.

  • Administrador
  • 14.445 mensajes
  • LocationMéxico

Escrito 19 agosto 2016 - 09:49

 

NOTA EDITADO:, Okay, Seoane, ya he visto el codigo fuente. No hay necesidad de explicar.   Pero por si acaso, tenes por ahi una version con GUI ?

 

jeje, Nuestro amigo seoane es un amante de las apps de consola (y del API por supuesto) y pocas veces hace algo GUI  *-)

 

Saludos


  • 0

#15 egostar

egostar

    missing my father, I love my mother.

  • Administrador
  • 14.445 mensajes
  • LocationMéxico

Escrito 19 agosto 2016 - 09:52

Hola, Seoane.

 

El enlace a como funciona el Programa ya no esta disponible, serias tan amable de incluir la informacion de uso en un nuevo mensaje.

 

 

El enlace corregido está en el mensaje # 11.

 

Saludos


  • 0

#16 seoane

seoane

    Advanced Member

  • Administrador
  • 1.259 mensajes
  • LocationEspaña

Escrito 20 agosto 2016 - 03:40

Version con GUI no tengo. El broker es un servicio asi que es normal que no tenga ninguna interfaz de cara al usuario (al menos no el propio servicio), y el cliente es solo una prueba de concepto por eso no me esforce mucho en darle un aspecto bonito.

 

Viendolo ahora, despues de un tiempo, me doy cuenta que solo fue un juguete que me sirvio para aprender mucho sobre sockets. Conocimientos que luego aplique a aplicaciones reales que poco tienen que ver con un broker.

 

Si alguien quiere meterse mas en serio en estos de los socket puede probar con Mosqitto, un servidor probado y usado por miles de personas y basado en un protocolo (MQTT) diseñado po la propia IBM . Es un protocolo muy sencillo, pensado para dispositivos con pocos recursos, y muy facil de implementar.

 

Saludos


  • 0

#17 sir.dev.a.lot

sir.dev.a.lot

    Advanced Member

  • Miembros
  • PipPipPip
  • 545 mensajes
  • Location127.0.0.1

Escrito 23 agosto 2016 - 02:11

El enlace corregido está en el mensaje # 11.

 

Saludos

 

Disculpa @Egostar, pero me hacia referencia a la lista de Comandos, aunque ya recorri el codigo fuente y vi que hace y que no

 

Gracias por responder.

 

Saludos!


  • 1




IP.Board spam blocked by CleanTalk.