Envio de Varios Arquivos via Socket Delphi
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
Clique aqui para fazer login e interagir na Comunidade :)