//----Servidor----///
procedure TFServidor.ssClientRead(Sender: TObject;
Socket: TCustomWinSocket);
var
Comando,Tudo,Nome,Tamanho,Pasta:String;
Buf:Int64;
Len,RevLen:Integer;
begin
Tudo:=Socket.ReceiveText; //Recebe Tudo que o cliente envia;
//--Comando Enviar--//
Comando:=Copy(Tudo,0,2);
//--Lê o Nome do arquivo--//
Nome:=Copy(Tudo,4,Length(tudo));
Nome:=Copy(Tudo,4,Pos('|',Nome)-1);
//--Lê o tamanho do arquivo--//
Tamanho:=Copy(Tudo,Length(Nome)+5,Length(Tudo));
//
//Verifica os Comandos Enviados pelo servidor//
If Comando = 'UP' Then
//
Edit1.Text:= Comando;
Edit2.Text:= Nome;
Edit3.Text:= Tamanho;
Pasta:= ExtractFilePath(Pasta)+Pasta;
//-----------------------//
Len:=SS.Socket.ReceiveLength;
Buf:=SS.Socket.ReceiveBuf(Buf,Len);
//-----------------------//
FStream:=TFileStream.Create(Nome,FmCREATE or FmOPENWRITE and Fmsharedenywrite);
while Len > 0 do
begin
RevLen := Socket.ReceiveBuf(Buf, Sizeof(Buf));
if RevLen <= 0 then
Break
else
FStream.Write(Buf, RevLen);
if FStream.Size >= StrToInt(Edit3.Text) then
begin
FStream.Free;
if Messagedlg('Deseja Abrir o arquivo?', mtConfirmation, [MbYes,MbNo],0) = MrYes then
begin
ShellExecute(Handle, 'Abrir', pchar(Pasta),nil, nil, SW_NORMAL);
end;
Break;
end;
end;
End;