Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Internet
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 09-05-2004
•–[XII]–• •–[XII]–• is offline
Miembro
 
Registrado: may 2004
Posts: 21
Poder: 0
•–[XII]–• Va por buen camino
Enviar un mensaje a todas las conexiones activas

Saludos, uso Delphi 7 y tengo un problema con las Indy... No se enviar desde el IdTCPServer un mensaje a todas las conexiones activas.

Muchas gracias
Responder Con Cita
  #2  
Antiguo 09-05-2004
•–[XII]–• •–[XII]–• is offline
Miembro
 
Registrado: may 2004
Posts: 21
Poder: 0
•–[XII]–• Va por buen camino
Por favor, necesito ayuda, nadie puede responderme?. He hecho una búsqueda en los foros como bien recomendáis, pero no he encontrado ningún hilo (no se me da bien buscar). He leído la guía de estilo y creo que no he puesto nada incorrecto. ¿Soy ignorado por ser la primera vez que posteo?
Responder Con Cita
  #3  
Antiguo 09-05-2004
Avatar de Combat-F2D
Combat-F2D Combat-F2D is offline
Miembro
 
Registrado: may 2003
Ubicación: Toletum
Posts: 454
Poder: 21
Combat-F2D Va por buen camino
Cita:
¿Soy ignorado por ser la primera vez que posteo?
personalmente te dire que no miro los post.
siempre hay una 1º vez
en todo hay un primero y un ultimo

puede ser que los que estamos no sepamos la solucion, o bien el que la sabe no esta

te paciencia, todo llegara, y por favor, lee la Guía de estilo de los foros
__________________
online
Responder Con Cita
  #4  
Antiguo 09-05-2004
Avatar de marcoszorrilla
marcoszorrilla marcoszorrilla is offline
Capo
 
Registrado: may 2003
Ubicación: Cantabria - España
Posts: 11.221
Poder: 10
marcoszorrilla Va por buen camino
Cita:
¿Soy ignorado por ser la primera vez que posteo?
.

He de decirte que no, lo que ocurre es que los fines de semana entra mucho menos gente a los foros y esto puede ser el motivo de que aún no te hayan resuelto tu pregunta, ten en cuenta que no todos trabajan con las Indy.

Un Saludo y ten paciencia.
__________________
Guía de Estilo de los Foros
Cita:
- Ça c'est la caisse. Le mouton que tu veux est dedans.
Responder Con Cita
  #5  
Antiguo 09-05-2004
Avatar de Emilio
*Emilio* Emilio is offline
Capo
 
Registrado: may 2003
Ubicación: Palma de Mallorca
Posts: 2.635
Poder: 10
Emilio Va por buen camino
Yo diría que tu pregunta es ambigüa, ¿qué quieres decir al decir "mensaje"?, ¿qué quieres decir al decir a todas las conexiones activas?

Aclara un poquito más lo que quieres hacer y seguro que encuentras más respuestas.
__________________
Saludos
Emilio
Responder Con Cita
  #6  
Antiguo 11-05-2004
orodriguezc orodriguezc is offline
Miembro
 
Registrado: nov 2003
Ubicación: Cartagena - Colombia
Posts: 33
Poder: 0
orodriguezc Va por buen camino
Yo lo hice usando UDP

Cita:
No se enviar desde el IdTCPServer un mensaje a todas las conexiones activas.
Yo tuve un problema similar pero utilizando UDP. Mi meta era poder notificar a todas las máquinas que estuvieran "interesadas" en la ocurrencia de un suceso. Para lograrlo simplemente envie un mensaje a la dirección Broadcast de mi Red IP.

Voy a mostrar un ejemplo para explicarme mejor: Todas las maquina de mi red tienen asignada alguna dirección IP en el rango 192.160.13.1 - 192.160.13.254 con mask 255.255.255.0, pues bien, la dirección de broadcast de mi red es 192.160.13.255. Esto significa que siempre que se envien un mensaje a la dirección 192.160.13.255, este mensaje llegará a todas las máquina encendidas en la red.

Ahora, en mi caso yo utilice UDP, el cual es un protocolo que no es orientado a conexión, lo que me facilitó bastante la tarea. Usando TCP no creo que la cosa sea tan sencilla, pero el principio es el mismo: enviar un mensaje a la dirección de broadcast.

Espero te sirva de guia. Saludos.
Responder Con Cita
  #7  
Antiguo 11-05-2004
Avatar de jachguate
jachguate jachguate is offline
Miembro
 
Registrado: may 2003
Ubicación: Guatemala
Posts: 6.254
Poder: 27
jachguate Va por buen camino
Hola. En primer lugar, me parece que dar solo algunas horas (seis, para ser exacto) para obtener respuesta es alg ilógico, tomando en cuenta que este es un foro que existe gracias a los desinteresados aportes de muchos.

Además, que este tipo de actitud se observe un domingo, me parece ya una exageración.

En fin... supongo que te referis a las conexiones establecidas ya con el servidor. Te bastaría hacer un bucle que recorra los Threads del server para escribir los mensajes.

Hasta luego.

__________________
Juan Antonio Castillo Hernández (jachguate)
Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate
Responder Con Cita
  #8  
Antiguo 11-05-2004
•–[XII]–• •–[XII]–• is offline
Miembro
 
Registrado: may 2004
Posts: 21
Poder: 0
•–[XII]–• Va por buen camino
Pido perdón por mi conducta, pero un compañero que viaja por estos foros me recomendó que entrase, que me responderían rápido, y al ver que esperaba y no encontraba respuesta de ninguno de Ud., postee otro mensaje. Sinceramente, les pido disculpas.

Lo que trato es de enviar un string a todas las conexiones activas. Voy a explicar el funcionamiento de mi aplicación:

-El cliente envía un mensaje al servidor
-El servidor comprueba que no sea un comando
-El servidor reenvía el mensaje a todos los clientes conectados al servidor.

¿Alguien sabría como puedo hacer lo tercero?. Muchas gracias.
Responder Con Cita
  #9  
Antiguo 11-05-2004
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Cita:
Empezado por •–[XII]–•
¿Alguien sabría como puedo hacer lo tercero?. Muchas gracias.
Pues esto ya te lo contestó el compañero jachguate:

Cita:
Empezado por jachguate
bastaría hacer un bucle que recorra los Threads del server para escribir los mensajes
Si buscas en las demos de Indy (puedes bajarlas de http://www.nevrona.com/Indy/ junto con la útima versión) encontrarás varias que te pueden ejemplificar; por ejemplo la del Chat, que tiene la función BroadcastMessage que manda un menaje a todos los clientes.

// Saludos
Responder Con Cita
  #10  
Antiguo 12-05-2004
•–[XII]–• •–[XII]–• is offline
Miembro
 
Registrado: may 2004
Posts: 21
Poder: 0
•–[XII]–• Va por buen camino
Código Delphi [-]
//Esto supongo que listará los clientes conectados
 List := tcpServer.Threads.LockList;
 try
    for Count := 0 to List.Count -1 do
      try
           //Supongo que en esta parte es el la que se envía el mensaje a todas las conexiones.
          TIdPeerThread(List.Items[Count]).Connection.WriteLn(Msg);
      except
           TIdPeerThread(List.Items[Count]).Stop;
       end;
       finally
           tcpServer.Threads.UnlockList;
       end;
Es verdad, había revisado el ejemplo, pero no encontraba la sección para distribuirlo. Una duda más... ¿para que sirve el Trim?, porque con la ayuda de Delphi no me aclaro (No se si debería poner esto en un nuevo hilo..., pero como es una pregunta sencilla...).


Muchas gracias

Última edición por •–[XII]–• fecha: 12-05-2004 a las 08:11:00.
Responder Con Cita
  #11  
Antiguo 12-05-2004
Avatar de marcoszorrilla
marcoszorrilla marcoszorrilla is offline
Capo
 
Registrado: may 2003
Ubicación: Cantabria - España
Posts: 11.221
Poder: 10
marcoszorrilla Va por buen camino
Realmente debieras de abrir otro hilo, puesto que la pregunta no tiene nada que ver con Internet, pero ya para cerrar este, te respondo.

Si escribes trim te colocas sobre dicha palabara y pulsas control + F1:

string handling routines

function Trim(const S: string): string;

Description

Trim removes leading and trailing spaces and control characters from the given string S

Un Saludo.
__________________
Guía de Estilo de los Foros
Cita:
- Ça c'est la caisse. Le mouton que tu veux est dedans.
Responder Con Cita
  #12  
Antiguo 12-05-2004
•–[XII]–• •–[XII]–• is offline
Miembro
 
Registrado: may 2004
Posts: 21
Poder: 0
•–[XII]–• Va por buen camino
Cita:
Empezado por marcoszorrilla
te colocas sobre dicha palabara y pulsas control + F1:
Eso ya lo hice antes de postear, lo que no se es el significado de la frase última. de:

Cita:
Trim removes leading and trailing spaces and control characters from the given string
Trim elimina ¿? y ¿? espacios y controla los carácteres de la cadena dada.
Responder Con Cita
  #13  
Antiguo 12-05-2004
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Cita:
Empezado por •–[XII]–•
Trim elimina ¿? y ¿? espacios y controla los carácteres de la cadena dada.
Trim elimina espacios al comienzo y al final y carácteres de control de la cadena dada.

Hay que reforzar el inglés ¿eh?

// Saludos
Responder Con Cita
  #14  
Antiguo 15-05-2004
•–[XII]–• •–[XII]–• is offline
Miembro
 
Registrado: may 2004
Posts: 21
Poder: 0
•–[XII]–• Va por buen camino
Cita:
Empezado por roman
Hay que reforzar el inglés ¿eh?
Cuanta razón lleva!!, por cierto, en la línea:
Código Delphi [-]
  //Esto supongo que listará los clientes conectados
  List := tcpServer.Threads.LockList;

Me da error en Threads en mi aplicación, ¿porqué?

Última edición por •–[XII]–• fecha: 15-05-2004 a las 13:05:31.
Responder Con Cita
  #15  
Antiguo 15-05-2004
Avatar de jachguate
jachguate jachguate is offline
Miembro
 
Registrado: may 2003
Ubicación: Guatemala
Posts: 6.254
Poder: 27
jachguate Va por buen camino
Cool

Cita:
Empezado por •–[XII]–•
Me da error en Threads en mi aplicación,
Que significa exactamente esto??

Eleva una excepción?? que excepción???

te recomiendo la lectura de este hilo que habla sobre la calidad de las preguntas.

Hasta luego.

__________________
Juan Antonio Castillo Hernández (jachguate)
Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate
Responder Con Cita
  #16  
Antiguo 15-05-2004
•–[XII]–• •–[XII]–• is offline
Miembro
 
Registrado: may 2004
Posts: 21
Poder: 0
•–[XII]–• Va por buen camino
No amplié la información puesto que no la tenía a mano.
Cita:
[ERROR] uPrincipal.pas(84): Undeclared identifier: 'Threads'
[ERROR] uPrincipal.pas(93): Undeclared identifier: 'Threads'
He copiado y pecado el BoadcastMessage y he quitado alguas cosas sobrantes.
Responder Con Cita
  #17  
Antiguo 15-05-2004
Avatar de jachguate
jachguate jachguate is offline
Miembro
 
Registrado: may 2003
Ubicación: Guatemala
Posts: 6.254
Poder: 27
jachguate Va por buen camino
Pero... que versión de las indy estas usando pues???
__________________
Juan Antonio Castillo Hernández (jachguate)
Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate
Responder Con Cita
  #18  
Antiguo 15-05-2004
•–[XII]–• •–[XII]–• is offline
Miembro
 
Registrado: may 2004
Posts: 21
Poder: 0
•–[XII]–• Va por buen camino
La v.9, la misma de la que descargé los ejemplos
Responder Con Cita
  #19  
Antiguo 15-05-2004
•–[XII]–• •–[XII]–• is offline
Miembro
 
Registrado: may 2004
Posts: 21
Poder: 0
•–[XII]–• Va por buen camino
Más fácil: La que me venía con Delphi 7 Enterprise
Responder Con Cita
  #20  
Antiguo 15-05-2004
Avatar de jachguate
jachguate jachguate is offline
Miembro
 
Registrado: may 2003
Ubicación: Guatemala
Posts: 6.254
Poder: 27
jachguate Va por buen camino
Cool

Pues yo recien compile el Demo del server de chat sin problemas...

revisá que incluyas en tu clausula uses la unidad IdTCPServer; aunque si has agregado en tiempo de diseño el componente, delphi debiera incluirla automáticamente.

Hasta luego.

__________________
Juan Antonio Castillo Hernández (jachguate)
Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro


La franja horaria es GMT +2. Ahora son las 19:20:28.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi