Fórum Envio de Varios Arquivos via Socket Delphi #520897
25/05/2015
0
bom noite estou com uma aplicaçao de envio de arquivos via socket funcionando normal so tenho duas duvidas.
1 - como posso enviar o nome e extencao do Arquivo?
2- como faço para enviar varios arquivos sendo que o programa gerencie e envie um de cada vez?
Cliente
Servidor
1 - como posso enviar o nome e extencao do Arquivo?
2- como faço para enviar varios arquivos sendo que o programa gerencie e envie um de cada vez?
Cliente
ArqTmp.Clear;
ArqTmp.LoadFromFile(ListaArquivo.Lines[0]);
Tamanho := ArqTmp.Size;
ClientSocket1.Socket.SendBuf(Tamanho,SizeOf(Int64));
ClientSocket1.Socket.SendBuf(ArqTmp.Memory^,ArqTmp.Size);
ListaArquivo.Lines.Delete(0);
MLog.Lines.Add('Arquivo Enviado...');
Servidor
var
TamBuffer : integer;
Paux : pointer;
begin
if not RecebendoArquivo then
Begin
Socket.ReceiveBuf(TamanhoArquivo,sizeof(Int64));
RecebendoArquivo := True;
if Arquivo = nil then
Arquivo := TMemoryStream.Create;
MLog.Lines.Add('Recebendo Arquivo...');
end
else
Begin
TamBuffer := Socket.ReceiveLength;
GetMem(PAux,TamBuffer);
Socket.ReceiveBuf(PAux^,TamBuffer);
Arquivo.Write(PAux^,TamBuffer);
Dispose(PAux);
if TamanhoArquivo = Arquivo.Size then
Begin
RecebendoArquivo := False;
MLog.Lines.Add('Transferencia do Arquivo completa...');
if SaveDialog1.Execute then
Arquivo.SaveToFile(SaveDialog1.FileName);
Arquivo.Free;
Arquivo := Nil;
end;
Daniel Thomaz
Curtir tópico
+ 0
Responder
Posts
06/12/2019
Adriano Pratti
bom noite estou com uma aplicaçao de envio de arquivos via socket funcionando normal so tenho duas duvidas.
1 - como posso enviar o nome e extencao do Arquivo?
2- como faço para enviar varios arquivos sendo que o programa gerencie e envie um de cada vez?
Cliente
Servidor
1 - como posso enviar o nome e extencao do Arquivo?
2- como faço para enviar varios arquivos sendo que o programa gerencie e envie um de cada vez?
Cliente
ArqTmp.Clear;
ArqTmp.LoadFromFile(ListaArquivo.Lines[0]);
Tamanho := ArqTmp.Size;
ClientSocket1.Socket.SendBuf(Tamanho,SizeOf(Int64));
ClientSocket1.Socket.SendBuf(ArqTmp.Memory^,ArqTmp.Size);
ListaArquivo.Lines.Delete(0);
MLog.Lines.Add('Arquivo Enviado...');
Servidor
var
TamBuffer : integer;
Paux : pointer;
begin
if not RecebendoArquivo then
Begin
Socket.ReceiveBuf(TamanhoArquivo,sizeof(Int64));
RecebendoArquivo := True;
if Arquivo = nil then
Arquivo := TMemoryStream.Create;
MLog.Lines.Add('Recebendo Arquivo...');
end
else
Begin
TamBuffer := Socket.ReceiveLength;
GetMem(PAux,TamBuffer);
Socket.ReceiveBuf(PAux^,TamBuffer);
Arquivo.Write(PAux^,TamBuffer);
Dispose(PAux);
if TamanhoArquivo = Arquivo.Size then
Begin
RecebendoArquivo := False;
MLog.Lines.Add('Transferencia do Arquivo completa...');
if SaveDialog1.Execute then
Arquivo.SaveToFile(SaveDialog1.FileName);
Arquivo.Free;
Arquivo := Nil;
end;
Boa tarde - Tem como eu pegar o nome do Arquivo que estou recebendo pra trabalhar ele sem precisar abrir um SaveDialog para isso sem saber o nome que o remetente me mandou na rede?
Responder
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)