Trebao bih da napisem prostu server aplikaciju u Delphi-ju, koja ce se vrteti na masini i acceptovati incoming fajlove sa remote masina. Ne treba nikakav interfejs i to, dakle server koji slusa na odredjenom portu i ceka na fajlove. Kako se ovo moze odraditi u Delphi-ju, posto nikada nisam ovako nesto radio, koje komponente trebam koristiti i da li mozda postoji neki primer na netu?
Server u Delphiju
Zaključano
Zakačeno
Pogledaj Indy komponente, na njihovom sajtu imas lepe primere.
izmenjeno 1 put, poslednji put Rawn 08.10.2012. u 19:33
Izmene poruke
- Rawn08.10.2012. u 19:33zapis iz teksta poruke
Postavis na formu IdTCPServer komponentu. Dupli klik na Bindings->New. Izaberes IP i port pa OK. Podesi u properties Active na True. Sada klikni na IdTCPServer i u events-ima dupli klik na OnExecute:
Napomena: ovo cita poslati Memory stream iz npr. IDTCPClient komponente.
Code:
procedure TForm1.IdTCPServer1Execute(AContext: TIdContext);
var
MojStrim: TMemoryStream;
begin
MojStrim := TMemoryStream.Create;
try
AContext.Connection.IOHandler.ReadStream(MojStrim, -1, True);
//Radi nesto sa strimom ovde
finally
MojStrim.Free;
end;
end;
procedure TForm1.IdTCPServer1Execute(AContext: TIdContext);
var
MojStrim: TMemoryStream;
begin
MojStrim := TMemoryStream.Create;
try
AContext.Connection.IOHandler.ReadStream(MojStrim, -1, True);
//Radi nesto sa strimom ovde
finally
MojStrim.Free;
end;
end;
Napomena: ovo cita poslati Memory stream iz npr. IDTCPClient komponente.
Slanje fajla izgleda:
Code:
procedure TForm1.Button1Click(Sender: TObject);
var
MyFileName: string;
MyStream: TMemoryStream;
begin
MyFileName := 'C:\NekiFajl.bin';
MyStream := TMemoryStream.Create;
MyStream.LoadFromFile(MyFileName);
IdTCPClient1.Host := '127.0.0.1';
IdTCPClient1.Port := 65535;
IdTCPClient1.Connect;
try
IdTCPClient1.IOHandler.LargeStream := True;
IdTCPClient1.IOHandler.Write(MyStream, 0, True);
finally
MyStream.Free;
// IdTCPClient1.IOHandler.InputBuffer.Clear;
IdTCPClient1.Disconnect;
end;
end;
procedure TForm1.Button1Click(Sender: TObject);
var
MyFileName: string;
MyStream: TMemoryStream;
begin
MyFileName := 'C:\NekiFajl.bin';
MyStream := TMemoryStream.Create;
MyStream.LoadFromFile(MyFileName);
IdTCPClient1.Host := '127.0.0.1';
IdTCPClient1.Port := 65535;
IdTCPClient1.Connect;
try
IdTCPClient1.IOHandler.LargeStream := True;
IdTCPClient1.IOHandler.Write(MyStream, 0, True);
finally
MyStream.Free;
// IdTCPClient1.IOHandler.InputBuffer.Clear;
IdTCPClient1.Disconnect;
end;
end;
Resio sam preko overbyte FTPServer/FTPClient komponente, hvala svima.