Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Internet
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Colaboración Paypal con ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 01-09-2011
Avatar de Chris
[Chris] Chris is offline
Miembro Premium
 
Registrado: abr 2007
Ubicación: Jinotepe, Nicaragua
Posts: 1.678
Poder: 21
Chris Va por buen camino
Hola!

Ahora entiendo tu problema y lo que quieres. Mira, la forma en como implementar aplicaciones multihilo depende de cada caso. Intenté escribirte un pseudo código para guiarte pero me ha detinido no comprender muy bien el uso que le das a ciertas variables. Por ejemplo:
  1. FStream
  2. RecibiendoArchivo
  3. E_RutaLocal
  4. NombreArchivoRecibido


El pseudo código que te tengo es este:
Código Delphi [-]
type
    TThreadedSocketRead = class(TThread)
    private
        FSocket: TCustomWinSocket;
        FReceiveStream: TStream;
        FProgressForm: TForm;
        procedure Execute; override;
    published
        constructor ReadSocket(Socket: TCustomWinSocket;
                               ReceiveStream: TStream;
                               ProgressForm: TForm;
                               const StartSuspended: Boolean = False);
    end;
    
    // ...
    
implementation

constructor TThreadedSocketRead.ReadSocket(Socket: TCustomWinSocket;
                                           ReceiveStream: TStream;
                                           ProgressForm: TForm; 
                                           const StartSuspended: Boolean);
begin
    inherited Create(StartSuspended);
    Self.FSocket := Socket;
    Self.FReceiveStream := ReceiveStream;
    Self.FProgressForm := ProgressForm;
end;

procedure TThreadedSocketRead.Execute;
var
    Buffer: arrat[0.. 9999] of Char;
    IncommingLength, Receivelength, FileSize, KBPart: Int64;
begin
    inherited;
    
    // descargar y procesar los datos del socket
    
end;

Por otro lado, en este código, estás utilizando la variable global "Form4" que no es recomendable bajo ninguna circunstancia. Utiliza "Self" en lugar de "Form4".
__________________
Perfil Github - @chrramirez - Delphi Blog - Blog Web
Responder Con Cita
  #2  
Antiguo 02-09-2011
maxinitto maxinitto is offline
Miembro
 
Registrado: may 2010
Posts: 45
Poder: 0
maxinitto Va por buen camino
ok, pero... ¿que hago con esto?, si yo envio el stream desde el server 2, ¿como hago yo para conectar el socket del hilo con el server 2? y ¿cuando invoco el execute del hilo? puff no tengo ni zorra idea jajaja nunca se me ha resistido nada en delphi y los putos hilos hablando bien me tienen hasta los hu....

Saludos y gracias por contesta, esperare tu respuesta.
Responder Con Cita
  #3  
Antiguo 02-09-2011
Avatar de Chris
[Chris] Chris is offline
Miembro Premium
 
Registrado: abr 2007
Ubicación: Jinotepe, Nicaragua
Posts: 1.678
Poder: 21
Chris Va por buen camino
No se trata que vallas a utilizar ese código. Te había dicho que ese código no está terminado aún. Es solo el esqueleto -por decirlo de cierta manera- de cómo debería implementarse según mi experiencia en aplicaciones multihilo. Te comenté que no sabía el significado o uso de algunas variables. Por ese desconocimiento es que no pude escribir un código más preciso.

Saludos,
Chris
__________________
Perfil Github - @chrramirez - Delphi Blog - Blog Web
Responder Con Cita
  #4  
Antiguo 03-09-2011
maxinitto maxinitto is offline
Miembro
 
Registrado: may 2010
Posts: 45
Poder: 0
maxinitto Va por buen camino
FStream - Es una variable que tengo como globlal asi no tengo que declararla en diferentes procedimientos, q es de tipo TFileStream
RecibiendoArchivo - Es un variable booelana, que cuando yo envio el nombre y el peso del archivo crear el archivo y esta variable la activo a true para que asi en el evento onread del cliente 2 puede ejecutarse el codigo
E_RutaLocal - Es un componente text del cual escojo el string para tener la ruta del archivo.
NombreArchivoRecibido - Esta como su nombre dice seria el nombre del archivo que recibimos es una paranolla de todos modos no le des importancia esas variables no interfieren a la hora de recibir el archivo yo las uso para hacer otras cosas, pero si no estubieran el codigo funcionaria igualmente, esto es para un filemanager que estoy haciendo.
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

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

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Duda con implementacion de Threads(Hilos) gersojn Varios 1 16-08-2011 09:36:33
Enviar mail Socket error #11004 monicasierrar Varios 0 08-03-2008 18:27:32
Enviar una estructura de datos a traves de Socket en Delphi ---baja--- API de Windows 3 29-06-2006 21:53:48
Enviar archivo por socket. 'TStream' y 'TFileStream' Incompatibles. Sr_Sombrero Internet 6 01-07-2004 07:45:37
Enviar imagen o archivo por socket DarkByte Internet 5 11-09-2003 15:16:16


La franja horaria es GMT +2. Ahora son las 00:44:33.


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