Transferencia de arquivos pela internet
E ai pesoal do forum :D eu so novo aki e um poko iniciante em delphi.....eu estou desenvolvendo com sockets tipo um icq......e keria sabe como se faz transferencia de arquivos via sockets ou com outro componente q seja funcional via internet.....espero q me ajudem vlw
D@rk_sun
Curtidas 0
Respostas
D@rk_sun
26/06/2004
Po galera do forum vamu ajuda essem foi mo recomendado vamu me ajuda ai a faze transferencia deuivos via net naum precisa se nesessariamente com sockets pode ser outro componente vamu ajuda ae
GOSTEI 0
Jasig Aurumalfa
26/06/2004
Existe vários componentes FTP que podem ajuda-lo...
Mas não recomendo muito para programas como FTP, e também no caso de seu programa, use outra porta para o FTP, não sendo 21, para evitar conflitos...
Mas não recomendo muito para programas como FTP, e também no caso de seu programa, use outra porta para o FTP, não sendo 21, para evitar conflitos...
GOSTEI 0
Jasig Aurumalfa
26/06/2004
[quote:e3f3cd5d96=´Jasig Aurumalfa´]
Mas não recomendo muito para programas como [b:e3f3cd5d96]FTP[/b:e3f3cd5d96][/quote:e3f3cd5d96]
Eu quis dizer ICQ...
Mas não recomendo muito para programas como [b:e3f3cd5d96]FTP[/b:e3f3cd5d96][/quote:e3f3cd5d96]
Eu quis dizer ICQ...
GOSTEI 0
Jasig Aurumalfa
26/06/2004
Também, achei essa rotina,
usada no ServerSocket receber e salvar o arquivo recebido:
No Servidor:
Espero ter ajudado...
usada no ServerSocket receber e salvar o arquivo recebido:
No Servidor:
var TInfo:PTrasnferInfo; p,r:Integer; Dta,f:string; Buffer:array [1..256] of Char; begin Dta:=Socket.ReceiveText; if Socket.Data = nil then begin try New(TInfo); f:=Chr(13); p:=Pos(f,Dta); TInfo^.LocalFile:=Copy(Dta,1,p - 1); if LstUploads.Items.IndexOf(UpperCase(TInfo^.LocalFile)) >= 0 then begin Socket.SendText(´O arquivo está sendo usado...´); Exit; end; TInfo^.Action:=TTransferAction(StrToIntDef(Copy(Dta,p + 1,Length(Dta)),0)); if TInfo^.Action = taDownload then begin AssignFile(TInfo^.BFile,TInfo^.LocalFile); Reset(TInfo^.BFile); end else if TInfo^.Action = taUpload then begin AssignFile(TInfo^.TFile,TInfo^.LocalFile); ReWrite(TInfo^.TFile); LstUploads.Items.Add(UpperCase(TInfo^.LocalFile)); end; Socket.Data:=TInfo; if TInfo^.Action = taDownload then Socket.SendText(IntToStr(FileSize(TInfo^.BFile))) else if TInfo^.Action = taUpload then Socket.SendText(´C´); except Socket.SendText(´Não foi possível acessar o arquivo´); Exit; end; end else begin TInfo:=Socket.Data; if TInfo^.Action = taDownload then begin p:=FilePos(TInfo^.BFile); BlockRead(TInfo^.BFile,Buffer,256,r); r:=FileSize(TInfo^.BFile); Dta:=string(Buffer); if (r - p) < 256 then Dta:=Copy(Dta,1,r - p); Socket.SendText(Dta); end else if TInfo^.Action = taUpload then begin Write(TInfo^.TFile,Dta); Socket.SendText(´C´); end; end; end;
Espero ter ajudado...
GOSTEI 0
D@rk_sun
26/06/2004
PO muito obrigado pelo codigo do servido agora so falta o do cliente pq eu naum sei comu faze-lo se você consegui fazer e posta-lo aki eu agradeceria muito obrigado :D
GOSTEI 0
D@rk_sun
26/06/2004
PO galera vamu ajuda aee po ninguem me ajudo com sockets ate agora tive q me vira sozinho po vamu ajuda ae :D
GOSTEI 0