Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

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

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 11-08-2004
raxsys raxsys is offline
Registrado
 
Registrado: ago 2004
Posts: 3
Poder: 0
raxsys Va por buen camino
Unhappy Comunicación entre equipos en red

Hola, es la primera vez que hago una pregunta en este foro. Necesito hacer un programa que en primer lugar me liste todos los equipos conectados a mi red. En cada equipo estaría instalado mi programa y desde la lista poder enviar entre ellos no solo texto (como en chat), sino también imagenes, el contenido de un treeview, o tal vez intercambiar archivos. No tengo la mas menor idea de como hacerlo, ojala alguien pueda ayudarme. Gracias.
Responder Con Cita
  #2  
Antiguo 12-08-2004
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.285
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
Cita:
Empezado por raxsys
(1) Necesito hacer un programa que en primer lugar me liste todos los equipos conectados a mi red.
(2) En cada equipo estaría instalado mi programa
(3) desde la lista poder enviar entre ellos no solo texto (como en chat), sino también imagenes, el contenido de un treeview, o tal vez intercambiar archivos.
Buenas.
El (1) no es problema, es sencillo. Puedes mirar trucos 319, 272 de trucomanía, tal vez te sirvan. O tb puedes probar ésta rutina:

Código Delphi [-]
var
  Computer                 : Array[1..500] of String[25];
  ComputerCount            : Integer;
 
procedure FindAllComputers(Workgroup : String);
  Var
    EnumHandle                : THandle;
    WorkgroupRS               : TNetResource;
    Buf                       : Array[1..500] of TNetResource;
    BufSize                   : Cardinal;
    Entries                   : Cardinal;
    Result                    : Integer;
  begin
    ComputerCount := 0;
    Workgroup := Workgroup + #0;
    FillChar(WorkgroupRS, SizeOf(WorkgroupRS) , 0);
    With WorkgroupRS do begin
      dwScope := 2;
      dwType := 3;
      dwDisplayType := 1;
      dwUsage := 2;
      lpRemoteName := @Workgroup[1];
    end;
    WNetOpenEnum( RESOURCE_GLOBALNET,
                  RESOURCETYPE_ANY,
                  0,
                  @WorkgroupRS,
                  EnumHandle );
    Repeat
      Entries := 1;
      BufSize := SizeOf(Buf);
      Result :=
       WNetEnumResource( EnumHandle,
                         Entries,
                         @Buf,
                         BufSize );
     If (Result = NO_ERROR) and (Entries = 1) then begin
        Inc( ComputerCount );
        Computer[ ComputerCount ] := StrPas(Buf[1].lpRemoteName);
      end;
    Until (Entries <> 1) or (Result <> NO_ERROR);
    WNetCloseEnum( EnumHandle );
  end;  { Find All Computers }
El (2) tampoco, sólo necesitas haber acabado ya el programa.
Yo empezaría por el (3); Me parece que vas a tener que utilizar Sockets; Puedes empezar a mirar las Indy, creo que por ahí anda una demo de un Chat, míratelo, creo que es un buen punto de partida, a partir de ah´se trata de ampliarlo a tus necesidades.
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita
  #3  
Antiguo 12-08-2004
raxsys raxsys is offline
Registrado
 
Registrado: ago 2004
Posts: 3
Poder: 0
raxsys Va por buen camino
Gracias, pero aún tengo dudas...

Gracias Neftalí, te cuento que busqué aquellos trucos pero no me sirvieron mucho, pero el procedimiento que me enviaste es realmente bueno, pero tengo un problema, requiere como parámetro el grupo de trabajo a listarse, y cómo puedo hacer para que revise en absolutamente todos los grupos o talvez, una forma de listar todos los grupos. En otras palabras, necesito saber todas las computadoras conectadas a la red en todos los grupos de trabajo.

Luego, halle unos cuantos ejemplos de chat pero lo que en realidad necesito, aparte de enviar mensajes cortos entre las aplicaciones, es que puedan por ejemplo, si en un equipo tengo un timage con cierta imagen, poder compartirla y poder verla desde el otro equipo, lo mismo con otros componentes; por otro lado, necesito hacer un intercambio de archivos directamente.

Se que suena latoso, pero en verdad agradeceré mucho la ayuda, como dije, soy novato en esto y no se a qué me he metido.

Gracias.
Responder Con Cita
  #4  
Antiguo 12-08-2004
Avatar de jachguate
jachguate jachguate is offline
Miembro
 
Registrado: may 2003
Ubicación: Guatemala
Posts: 6.254
Poder: 28
jachguate Va por buen camino
Para enviar archivos e imágenes, podes valerte, como ya te han dicho, de las indy (TidTCPClient), que tienen un método WriteStream con el que podes enviar cualquier cosa que pueda ponerse en un stream (en principio, cualquier archivo via TFileStream, o imagen via TMemoryStream, etc).

Creo que es una buena idea que descargues las demos de las indy (http://www.indyproject.org), y te des una vuelta por el chat, idTCPDemo y el TCPStreamClientServer.

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 04:58:18.


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