bueno veo que nadie contesta, he pensado que puede ser por falta de informacion, bueno aquie adjunto el codigo del evento onread de mi socket, la conexion es inversa...
Código Delphi
[-]procedure TForm4.c3ClientRead(Sender: TObject; Socket: TCustomWinSocket);
var
Buffer: array [0..9999] of Char;
IncommingLen, RecievedLen: integer;
PesoDeArchivo, PartFileRec : Int64;
begin
if RecibiendoArchivo then
begin
PesoDeArchivo := StrToInt64(FileSizes) div 1024;
Form4.PB_ProgresoArchivo.Max := PesoDeArchivo;
Form4.Timer1.Enabled := True;
IncommingLen := Socket.ReceiveLength;;
while IncommingLen > 0 do
begin
RecievedLen := socket.ReceiveBuf(Buffer, Sizeof(Buffer));
PartFileRec := RecievedLen div 1024;
Form4.PB_ProgresoArchivo.Position := Form4.PB_ProgresoArchivo.Position + PartFileRec;
Form4.L_ProgresoKB.Caption := IntToStr(Form4.PB_ProgresoArchivo.Position) + ' KB / ' + IntToStr(Form4.PB_ProgresoArchivo.Max) + ' KB';
if PartFileRec <= 0 then
Break
else
Form4.FStream.Write(Buffer, RecievedLen);
if Form4.FStream.Size >= StrToInt64(FileSizes) then
begin
Form4.FStream.Free;
Form4.Timer1.Enabled := False;
Form4.TimeTaken := 0;
RecibiendoArchivo := False;
ActualizarYmostrar(GetFileIcon(Form4.E_RutaLocal.Text + Form2.NombreArchivoRecibido));
Break;
end;
end;
end;
end;
si este codigo lo meto en otro procedimiento declarado por mi, no puedo hacer referencia ala variable socket, es decir , no sabria que socket me esta enviando las partes de archivo...¿como lo puedo hacer para meterlo en un hilo?, lo quiero meter en el hilo por que la aplicacion se me cuelga y se me recupera constantemente hasta que llega el archivo.