|
|
![]() ![]() ![]() |
|
Komponenty firmy NetMasters jsou umístěny na stránce Internet palety komponent. Tyto komponenty je možno rozdělit do následujících skupin:
Deklarace | Popis | Rozsah | Dostupnost |
property BeenCanceled: boolean; | Vlastnost má hodnotu true, pokud současná operace má být zrušena, a false jestliže současná operace nemá týt zrušena. | Public | Runtime, Readonly |
property BeenTimedOut: boolean; | Vlastnost má hodnotu true, pokud pro současnou operaci vypršel čas nebo false, jestliže čas nevypršel. | Public | Runtime, Readonly |
property BytesRecvd: longint; | Vlastnost obsahuje počet slabik přijatých v současném přenosu dat. | Public | Runtime, Readonly |
property BytesSent: longint; | Vlastnost obsahuje počet slabik odeslaných v průběhu současné datové transakce. | Public | Runtime, Readonly |
property BytesTotal: longint; | Vlastnost obsahuje celkový počet slabik přijatých nebo odeslaných v současné datové transakci. | Public | Runtime, Readonly |
property Connected: boolean; | Vlastnost má hodnotu true pokud klient je připojen na vzdáleného hostitele a false pokud připojen není. | Public | Runtime, Readonly |
property Handle: tSocket; | Madlo soketu právě používaného pro komunikaci WinSock. Používáme při přímém volání API WinSock. | Public | Runtime, Readonly |
property Host: String; | Vlastnost obsahuje jméno nebo tečkovou IP adresu vzdáleného hostitele pro připojení. | Published | Runtime, Designtime |
property LastErrorNo: integer; | Vlastnost obsahuje poslední oznámenou chybu soketu. | Public | Runtime |
property LocalIP: string; | Vlastnost obsahuje tečkovou IP adresu lokálního počítače. Je-li více než jedna IP adresa, pak je vracena pouze první. | Public | Runtime, Readonly |
property Port: Integer; | Vlastnost specifikuje číslo portu na vzdáleném hostiteli, ke kterému se připojujeme nebo v případě serveru, číslo portu na kterém server naslouchá. | Published | Runtime*, Designtime |
property RemoteIP: string; | Vlastnost obsahuje tečkovou IP adresu vzdáleného hostitele. Vlastnost není nastavena dokud klient není připojen na vzdáleného hostitele. | Public | Runtime, Readonly |
property ReplyNumber: Smallint; | Vlastnost obsahuje číselný výsledek transakce (je-li). | Public | Runtime, Readonly |
property ReportLevel: integer; | Vlastnost řídí množství detailů, které jsou oznamovány událostí OnStatus a vlastností Status. Možné hodnoty jsou: Status_None = 0, Status_Informational = 1, Status_Basic = 2, Status_Routines = 4, Status_Debug = 8 a Status_Trace = 16. Implicitní hodnota je Status_Informational. | Published | DesignTime, RunTime |
property Status: String; | Vlastnost obsahuje poslední stavovou zprávu, která byla předána jako parametr stavu v události OnStatus. | Public | RunTime, ReadOnly |
property TimeOut: Integer; | Vlastnost specifikuje množství času (v milisekundách) čekání na odpověď od soketu před generováním výjimky a zrušením současné operace. Pokud TimeOut je 0, pak výjimka není nikdy generována a čas operace nikdy nevyprší. Implicitní hodnota: 0. | Published | Designtime, Runtime |
property TransactionReply: String; | Vlastnost obsahuje výsledek od posledního příkazu zaslaného na server. | Public | Runtime, ReadOnly |
property WSAInfo: TStringList; | Vlastnost obsahuje informace o současné verzi Winsock (číslo verze a výrobce). | Public | Runtime, ReadOnly |
* V případě TNMGeneralServer, vlastnost Port musí být nastavena během návrhu.
Následuje stručný popis metod komponenty. Je zde uvedena deklarace (v Object Pascalu), popis, popis parametrů a vracená hodnota.
function Accept: Word; virtual;
Metoda akceptuje připojení ze vzdáleného počítače, který
požaduje připojení. Soket akceptující připojení je návratová hodnota. Výsledkem
funkce je popis soketu pro připojení klienta.
function read(value: word): string;
Metoda čte specifikovaný počet slabik ze současně připojeného
soketu a vrací jej jako řetězec. Parametr specifikuje počet slabik, který
má být přečten ze soketu. Jestliže value = 0, pak jsou čtena všechna
data vracená soketem.
function ReadLn: string;
Metoda čte data ze soketu dokud není nalezeno odřádkování
a vrací data jako řetězec.
function Transaction(const CommandString: String): String; virtual;
Metoda zasílá příkaz vzdálenému hostiteli a vrací odpověď
od hostitele jako řetězec. Je také nastavena vlastnost ReplyNumber
na číselnou hodnotu odpovědi (je-li). Parametr specifikuje příkaz zasílaný
na server.
procedure Abort; virtual;
Metoda ruší současnou operaci. Tato metoda je ve svých
potomcích přepisována, protože každá operace má jiné požadavky na operaci
zrušení.
procedure Cancel;
Metoda ruší současnou vstupní nebo výstupní operaci a
odpojuje se od vzdáleného hostitele. Když je volána metoda Cancel,
pak je generována výjimka.
procedure CaptureFile(FileName: String);
Metoda zabere všechna data ze soketu a uloží je v souboru
specifikovaném parametrem. Data budou odebírána ze soketu, dokud soket
není uzavřen. Parametr musí být přípustná specifikace souboru (může být
uvedena i adresářová cesta).
procedure CaptureStream(MainStream: TStream; Size: longint);
Metoda zabírá data ze soketu dokud není získán specifikovaný
počet slabik. Parametr MainStream specifikuje proud použitý pro
uložení dat a parametr Size určuje počet čtených slabik do proudu.
Pokud
Size je -1, pak data jsou čtena do proudu dokud soket není
uzavřen.
procedure CaptureString(var AString: String;
Size: longint);
Metoda přebírá data specifikované velikosti ze soketu
a ukládá je do řetězce. Prvním parametrem je řetězcová proměnná do které
jsou ukládána data, druhý parametr specifikuje počet čtených slabik ze
soketu do řetězce. Pokud Size je -1, pak data jsou čtena do proudu
dokud soket není uzavřen.
procedure CertifyConnect;
Metoda testuje zda vidí připojení klienta ke vzdálenému
hostiteli. Pokud připojení neexistuje je generována událost OnConnectionRequired.
Tato událost je v TPowersock chráněná, ale v jeho potomcích je zveřejněna.
procedure Connect; virtual;
Metoda připojuje klienta ke vzdálenému hostiteli. Před
voláním metody musí být nastaveny vlastnosti Host a Port.
V komponentách specifických protokolů, potomcích TPowersock vlastnost
Port
je již nastavena na standardní port protokolu. Pokud jméno hostitele je
chybné, pak je generována výjimka, jestliže proměnná
Handled v události
OnInvalidHost
není nastavena na true, nebo pokud událost
OnInvalidHost
nenastavuje chybné jméno hostitele na přípustné jméno hostitele. Pokud
připojení je neúspěšné, pak vzniká událost OnConnectionFailed a
je generována výjimka.
procedure Disconnect; virtual;
Metoda odpojuje klienta od vzdáleného hostitele. Při
úspěšném odpojení vzniká událost OnDisconnect.
procedure FilterHeader(HeaderStream: TFileStream);
Metoda filtruje výstup hlavičky MIME z dat získaných
připojeným soketem a ukládaných do HeaderStream. Parametr specifikuje
souborový proud k uložení hlavičky MIME.
procedure Listen(sync: boolean);
Metoda naslouchá TCP připojení na portu specifikovaném
vlastností Port. Pokud parametr je false, pak při navázání
připojení vzniká událost
OnAccept, ve které připojení může být akceptováno
metodou Accept nebo může být ignorováno. Jestliže parametr je true,
pak volání
Accept musí být provedeno přímo po volání Listen
k akceptaci připojení.
procedure RequestCloseSocket;
Metoda uzavírá současné aktivní soket, ale neuvolňuje
jej.
procedure SendBuffer(value: PChar; buflen: word);
Metoda zasílá data z vyrovnávací paměti na vzdáleného
hostitele. První parametr specifikuje vyrovnávací paměť s odesílanými daty
a druhý parametr určuje počet slabik, které budou odeslány z vyrovnávací
paměti.
procedure SendFile(FileName: String);
Metoda odesílá obsah souboru na vzdáleného hostitele.
Parametr specifikuje jméno odesílaného souboru (může obsahovat i adresářovou
cestu).
procedure SendStream(MainStream: TStream);
Metoda odesílá obsah proudu na vzdáleného hostitele.
Parametr specifikuje proud obsahující odesílaná data.
procedure write(value: String);
Metoda odesílá řetězec na vzdáleného hostitele. Odesílaný
řetězec je určen parametrem. Na konec přenášeného řetězce není připojeno
odřádkování.
procedure writeln(value: string);
Metoda odesílá řetězec na vzdáleného hostitele. Odesílaný
řetězec je určen parametrem. Na konec řetězce je připojeno odřádkování.
Komponenta TPowersock má tyto události:
property OnConnect: TNotifyEvent;
Událost vzniká, když je zřízeno připojení na vzdáleného
hostitele. Odpovídá zprávě FD_CONNECT WinSock.
property OnHostResolved: TOnHostResolved;
Událost vzniká, když adresa vzdáleného hostitele je převedena
na tečkovou IP adresu. Pokud specifikované jméno hostitele nebo IP adresa
je chybná, pak není generována událost OnHostResolved, ale událost
OnInvalidHost.
property OnStatus: TOnStatus;
Událost vzniká, když se změní stav komponenty.
property OnConnectionFailed: TNotifyEvent;
Událost vzniká, když nelze zřídit připojení na vzdáleného
hostitele.
property OnDisconnect: TNotifyEvent;
Událost vzniká při odpojení klienta od serveru. Odpovídá
zprávě FD_CLOSE WinSock.
property OnInvalidHost: THandlerEvent;
Událost vzniká, když hostitel specifikovaný vlastností
Host
je nepřípustný. Pokud parametr Handled je nastaven na
true
pak je zopakován pokus o připojení. Když Handled je
false,
pak je generována výjimka.
property OnPacketRecvd: TNotifyEvent;
Událost nastává, když data jsou přijmuta ze vzdáleného
hostitele. Používáme společně s vlastnostmi BytesRecvd a BytesTotal
k monitorování průběhu zpracování dat.
property OnPacketSent: TNotifyEvent;
Událost nastává, když data jsou odeslána na vzdáleného
hostitele. Používáme společně s vlastnostmi BytesSent a BytesTotal
k monitorování průběhu zpracování dat.
Komponenta TPowersock není určena pro přímé použití v našich aplikacích (i když může být použita). Následuje několik příkladů objasňujících význam a použití jednotlivých metod, vlastností a událostí této komponenty (někdy je k demonstraci použit některý potomek TPowersock).
Příklad 1
K vytvoření tohoto příkladu začneme novou aplikaci a
na formulář vložíme komponenty TButton, TMemo a TPowersock.
Do obsluhy události OnClick tlačítka vložíme následující kód:
void __fastcall TForm1::Button1Click(TObject
*Sender)
{
Powersock1->Host = "www.netmastersllc.com";
Powersock1->Port = 13;
Powersock1->Connect();
}
Do obsluhy události OnConnect ovladače TPowersock
vložíme kód:
void __fastcall TForm1::Powersock1Connect(TObject
*Sender)
{
Memo1->Liens->Add("Connected");
Memo1->Lines->Add("Local Address:
"+Powersock1->LocalIP);
Memo1->Lines->Add("Remote Address:
"+Powersock1->RemoteIP);
}
Obsluha události OnHostResolved ovladače TPowersock
vypadá takto:
void __fastcall TForm1::Powersock1HostResolved(TComponent
*Sender)
{
Memo1->Lines->Add("Host Resolved");
}
Vytvoříme ještě obsluhu OnStatus ovladače TPowersock
s kódem:
void __fastcall TForm1::Powersock1Status(TComponent
*Sender,
AnsiString Status)
{
Memo1->Lines->Add(Powersock1->Status);
Memo1->Lines->Add("Last WinSock error:
"+IntToStr(Powersock1->LastErrorNo));
if (Powersock1->BeenCanceled)
Memo1->Lines->Add("Input/ouput
operation canceled");
if (Powersock1->BeenTimedOut)
Memo1->Lines->Add("Operation
timed out");
}
Spustíme aplikaci a stiskneme tlačítko. Po stisku tlačítka
je zřízeno připojení na www.netmastersllc.com na port 13. Po převedení
www.netmastersllc.com
na přípustnou IP adresu, pak obsluha OnHostResolved přidá do komponenty
Memo
řádek Host Resolved. Když je zřízeno připojení pak OnConnect
aktualizuje Memo k informování uživatele, že připojení bylo zřízeno.
Jsou také vypsány tečkové IP adresy lokálního počítače (vlastnost LocalIP)
a vzdáleného počítače (vlastnost RemoteIP). Jak jsou dostupné stavové
zprávy, pak do Memo jsou přidány další řádky, stejně jako poslední
zjištěná chyba Winsock. Pokud současná operace má být zrušena, pak vlastnost
BeenCanceled
je true a pokud pro současnou operaci vypršel čas, pak vlastnost
BeenTimedOut
má hodnotu true.
Příklad 2
Pro vytvoření dalšího příkladu začneme novou aplikací.
Na formulář vložíme komponenty TStatusBar, TButton a TNMHTTP
a nastavíme vlastnost SimplePanel komponenty stavového řádku na
true.
Vytvoříme obsluhu události OnPacketRecvd komponenty
TNMHTTP
s následujícím příkazem:
void __fastcall TForm1::NMHTTP1PacketRecvd(TObject
*Sender)
{
StatusBar1->SimpleText = IntToStr(NMHTTP1->BytesRecvd)+
" bytes
out of "+IntToStr(NMHTTP1->BytesTotal)+" transferred";
}
Obsluha stisku tlačítka bude:
void __fastcall TForm1::Button1Click(TObject
*Sender)
{
NMHTTP1->Get("http://www.netmastersllc.com");
}
Spustíme aplikaci a stiskneme tlačítko. Stavový řádek
je aktualizován podle přijatého dokumentu. Událost OnPacketRecvd
aktualizuje stavový řádek, když data přijdou, zobrazením celkového počtu
přenášených slabik a počtu slabik přijatých klientem.
Příklad 3
Opět začneme novou aplikací. Na formulář umístíme komponenty
TStatusBar,
TButton,
3x TEdit a TNMSMTP a nastavíme vlastnost
SimplePanel
stavového řádku na true.
Vytvoříme obsluhu události OnPacketSent komponenty
TNMSMTP
s tímto obsahem:
void __fastcall TForm1::NMSMTP1PacketSent(TObject
*Sender)
{
StatusBar1->SimpleText = IntToStr(NMSMTP1->BytesSent)+
" bytes out of "+IntToStr(NMSMTP1->BytesTotal)+" transferred";
}
Obsluha OnConnect komponenty TNMSMTP bude
vypadat takto:
void __fastcall TForm1::NMSMTP1Connect(TObject
*Sender)
{
NMSMTP1->SendMail();
}
Pokuste se sami vytvořit obsluhu události OnSuccess
komponenty
TNMSMTP informující na stavovém řádku o úspěšnosti operace.
Dále vytvoříme obsluhu stisku tlačítka s tímto obsahem:
void __fastcall TForm1::Button1Click(TObject
*Sender)
{
int I;
NMSMTP1->Host = Edit1->Text;
NMSMTP1->UserID = Edit2->Text;
NMSMTP1->PostMessage->FromAddress
= Edit3->Text;
NMSMTP1->PostMessage->ToAddress->Text
= Edit3->Text;
NMSMTP1->PostMessage->Subject = "Testing
BytesSent";
for (I = 1; I <= 10; I++)
NMSMTP1->PostMessage->Body->Add("Test
line "+IntToStr(I));
NMSMTP1->Connect();
}
Spustíme aplikaci. Do Edit1 zapíšeme jméno nebo
IP adresu našeho SMTP serveru. Do Edit2 zapíšeme ID uživatele pro
SMTP server. Do
Edit3 zapíšeme naši e-mail adresu. Když stiskneme
tlačítko, pak si sami sobě zašleme mail a když paket je odeslán (v tomto
případě je pouze jeden), pak stavový řádek zobrazuje počet odeslaných slabik.
Příklad 4
Začneme opět novou aplikaci. Na formulář umístíme 2x
TButton,
TNMSMTP,
3x TEdit a TMemo. Obsluha stisku prvního tlačítka bude tvořena:
void __fastcall TForm1::Button1Click(TObject
*Sender)
{
NMSMTP1->Host = Edit1->Text;
NMSMTP1->UserID = Edit2->Text;
NMSMTP1->PostMessage->ToAddress->Text
= Edit3->Text;
NMSMTP1->PostMessage->FromAddress
= Edit3->Text;
NMSMTP1->PostMessage->Subject = "Test
message";
NMSMTP1->PostMessage->Body->Add("This
is a test message");
NMSMTP1->PostMessage->Body->Add
("If this message is delivered,
the Cancel button (Button2) wasn't pressed fast enough");
NMSMTP1->Connect();
}
Obsluha OnConnect komponenty TNMSMTP je
tvořena:
void __fastcall TForm1::NMSMTP1Connect(TObject
*Sender)
{
Memo1->Lines->Add("Connected, sending
message");
NMSMTP1->SendMail();
}
a obsluhu OnSuccess stejné komponenty tvoří:
void __fastcall TForm1::NMSMTP1Success(TObject
*Sender)
{
Memo1->Lines->Add("Success, you didn't
press Button2 fast enough");
if (NMSMTP1->Connected)
NMSMTP1->Disconnect();
}
Obsluhu stisku druhého tlačítka tvoří kód:
void __fastcall TForm1::Button2Click(TObject
*Sender)
{
Powersock1->Cancel();
}
Zbývá ještě vytvořit obsluhu události OnDisconnect
komponenty
TNMSMTP:
void __fastcall TForm1::NMSMTP1Disconnect(TObject
*Sender)
{
Memo1->Lines->Add("Disconnected");
}
Spustíme aplikaci. Do Edit3 zapíšeme naši e-mail
adresu. Zapíšeme jméno hostitele nebo IP adresu našeho SMTP serveru do
Edit1.
Pokud při přihlašování k našemu SMTP serveru je požadováno ID uživatele,
pak je zadáme do Edit2 (nebo jej ponecháme prázdný).
Nyní stiskneme první tlačítko. Když v Memo se
objeví Connected, sending message, pak stiskneme druhé tlačítko.
Po jeho stisku je generována výjimka a je volána obsluha OnDisconnect,
která oznamuje uživateli odpojení.
Pokud druhé tlačítko nestiskneme před úspěšným odesláním
zprávy, pak obsluha OnSuccess přidá do Memo oznámení, že
uživatel tlačítko nestisknul a je volána metoda Disconnect k odpojení
od vzdáleného hostitele, pokud klient je stále připojen (je oznámeno vlastností
Connected).
Příklad 5
Dříve než můžeme použít událost OnRead, musíme:
Metoda Serve je virtuální metoda, která ve třídách
potomků bývá předefinována. Metoda Serve je metoda, která je volána
vždy, když se klient připojí na server. Metoda Serve je prováděna
v jiném vlákně a tak objekty a metody VCL nemohou být použity v této metodě.
Poznámka: Metoda Serve nedělá nic, když
je volána přímo ze třídy TNMGeneralServer. Musí být používána (přepsaná)
ve třídách odvozených od TNMGeneralServer.
Když použijeme metodu Serve v odvozené třídě,
pak musíme volat zděděnou metodu Serve. Když metoda Serve
skončí, pak klient je odpojen od serveru.
Událost
property OnClientContact: TNotifyEvent;
nastává vždy, když klient se připojuje na server.
property DayTimeStr: string; | Vlastnost obsahuje datum a čas získané od vzdáleného hostitele. Formát datumu a času závisí na dotazovaném serveru. | Public | RunTime, ReadOnly |
Pozor: Volání zděděné metody Connect
způsobí chybu.
property ElapsedTime: single; | Vlastnost určuje čas potřebný k vrácení zaslaného textu zpět klientovi. | Public | RunTime, ReadOnly |
Poznámka: Toto vlastnost není nastavena dokud metoda Echo není volána, a obsahuje výsledek z posledního volání.
function Echo(EchoString: string): string;
Metoda zasílá text předaný v parametru na vzdálený server.
Tento text je vracen zpět a tvoří návratovou hodnotu metody (k původnímu
textu je připojeno odřádkování).
Poznámka: Před voláním této metody musíme být
připojeni na vzdáleného hostitele. Pokud nejsme připojeni vzniká událost
OnConnectionRequired.
property FingerStr: string; | Vlastnost obsahuje informaci (je-li) o specifikovaném uživateli. | Public | RunTime, ReadOnly |
property User: string; | Vlastnost specifikuje uživatele k získání informací o něm. | Published | DesignTime, RunTime |
Poznámka: Pokud server nenalezne informaci o
uživateli, pak vlastnost FingerStr obsahuje User Not Found.
Varování: Vlastnost Host musí být nastavena
na přípustný server Finger a vlastnost User musí být nastavena
před přístupem ve vlastnosti FingerStr.
procedure Clear;
Metoda vyprazdňuje vlastnosti objektu seznamu. Po jejím
volání, každý objekt TStringList je prázdný.
procedure ParseLine(Line: string); virtual;
Metoda rozkládá řádek seznamu a odděluje jména, velikosti,
datum modifikace a atributy souboru do jejich samostatných vlastností v
objektu.
property CurrentDir: string; | Vlastnost obsahuje jméno současného adresáře na vzdáleném systému. Po volání ChangeDir se může změnit. | Public | RunTime, ReadOnly |
property FTPDirectoryList: TFTPDirectoryList; | Vlastnost je používána pouze pokud vlastnost ParseList je nastavena na true. FTPDirecxtoryList obsahuje seznam získaný z metody List, kde jednotlivé prvky jsou rozděleny do vlastností. | ||
property ParseList: boolean; | Vlastnost určuje zda rozkládat adresářový seznam do vlastnosti FTPDirectoryList nebo ne. Při nastavení na false, adresářový seznam rozkládán není a musí být zpracováván událostí OnListItem. | Published | Runtime, Designtime |
property Password: string; | Vlastnost specifikuje heslo použité při přihlašování na vzdáleného hostitele FTP. Pokud specifikované heslo je chybné, pak je generována událost OnAuthenticationFailed. Když heslo není zadáno vzniká událost OnAuthenticationNeeded. | Published | Runtime, Designtime |
property UserID: string; | Vlastnost specifikuje ID uživatele použité při přihlašování na vzdáleného hostitele FTP. | Published | Runtime, designtime |
property Vendor: integer; | Vlastnost specifikuje typ hostitele FTP, ke kterému se připojujeme. To umožňuje rozložit adresářový seznam hostitele správným způsobem. Implicitní hodnota: NMOS_AUTO. Možné hodnoty jsou: NMOS_UNIX, NMOS_WINDOWS, NMOS_VM, NMOS_BULL, NMOS_MAC, NMOS_TOPS20, NMOS_VMS, NMOS_OS2, NMOS_MVS_IBM, NMOS_MVS_INTERLINK, NMOS_OTHER, NMOS_AUTO, NMOS_NT, NMOS_TANDEM, NMOS_AS400, NMOS_OS9 a NMOS_NETWARE. |
Komponenta má následující metody:
procedure Allocate(FileSize: Integer);
Metoda se používá pro alokování místa na vzdáleném hostiteli
pro ukládaný soubor. Parametr specifikuje počet alokovaných slabik pro
přicházející soubor. Tato metoda není požadována často. Poskytuje podporu
pro servery, které vyžadují alokování diskového prostoru dříve než ukládání
souboru může být provedeno.
procedure ChangeDir(DirName: string);
Metoda mění aktuální adresář na vzdáleném hostiteli.
Parametr specifikuje jméno nového aktuálního adresáře. Může to být adresář
umístěný v aktuálním adresáři nebo úplná cesta. Při změně adresáře se změní
i vlastnost CurrentDir. Pokud příkaz je úspěšný, pak je generována
událost OnSuccess, jinak událost OnFailure. V obou případech
jako parametr Trans_Type události je předáno cmdChangeDir.
procedure Delete(Filename: string);
Metoda ruší soubor ze vzdáleného hostitele. Parametr
specifikuje rušený soubor na vzdáleném hostiteli. Může to být soubor v
současném pracovním adresáři nebo adresářová cesta se jménem souboru někde
na vzdáleném systému. Pro rušení souboru musíme mít zápisová privilegia.
Pokud příkaz je úspěšný, pak je generována událost OnSuccess, jinak
událost OnFailure. V obou případech jako parametr Trans_Type
události je předáno cmdDelete.
procedure DoCommand(CommandStr: string);
Metoda se používá pro zasílání příkazů na vzdáleného
hostitele FTP. Tato metoda je užitečná pro použití s uživatelskými hostiteli
FTP, které mají nestandardní příkazy nebo pro podporu neimplementovaných
příkazů. Parametr je příkaz, který bude odeslán na server. Může být jednoduchý
jako
pwd (příkaz pro získání jména aktuálního adresáře) nebo složité
jako zavádění více souborů.
procedure Download(RemoteFile, LocalFile: string);
Metoda je používána pro zavádění souborů ze vzdáleného
hostitele FTP na lokální počítač. Parametr RemoteFile specifikuje
jméno souboru v současném pracovním adresáři na vzdáleném hostiteli k zavedení.
Parametr
LocalFile specifikuje jméno pod kterým soubor má být uložen
na lokálním počítači. Pokud soubor se stejným jménem již existuje, pak
je přepsán. Pokud příkaz je úspěšný, pak je generována událost OnSuccess,
jinak událost OnFailure. V obou případech jako parametr Trans_Type
události je předáno cmdDownload.
procedure DownloadRestore(RemoteFile, LocalFile: string);
Metoda zavádí soubor ze vzdáleného hostitele, pokračováním
přenosu, který byl dříve přerušen. Parametr RemoteFile specifikuje
jméno zaváděného vzdáleného souboru. Parametr LocalFile specifikuje
jméno pro uložení souboru na lokální disk. Je to jméno souboru, který již
existuje a je částí souboru dříve zaváděného. Tuto metodu nepodporují všechny
hostitelé.
procedure List;
Metoda je používána pro získávání seznamu souborů a adresářů
ze vzdáleného hostitele. Seznam je získáván ze současného pracovního adresáře.
Pro každý uvedený prvek je generována událost OnListItem. Pokud
ParseList
je nastavena na true, pak vlastnost FTPDirectoryList obsahuje
prvky obsažené v seznamu, včetně jmen, velikostí a atributů. Pokud příkaz
je úspěšný, pak je generována událost OnSuccess, jinak událost
OnFailure.
V obou případech jako parametr Trans_Type události je předáno cmdList.
procedure MakeDirectory(DirectoryName: string);
Metoda vytváří adresář v současném pracovním adresáři
na vzdáleném hostiteli FTP. Parametr specifikuje jméno vytvářeného adresáře.
Může to být samotné jméno adresáře nebo úplná adresářová cesta. Pokud příkaz
je úspěšný, pak je generována událost OnSuccess, jinak událost OnFailure.
V obou případech jako parametr Trans_Type události je předáno cmdMakeDir.
procedure Mode(TheMode: Integer);
Metoda mění přenosový režim souboru použitý pro přenos
souborů mezi vzdáleným hostitelem a lokálním počítačem. Parametr specifikuje
přenosový režim. Jsou možné tyto hodnoty:
procedure Reinitialize;
Metoda je použita k opětovnému nastavení připojení k
serveru. To umožňuje připojení ke vzdálenému hostiteli před provedením
autentizace (UserID a Password). Po volání metody Reinitialize
je připojení v nepoužitelném stavu. Před prováděním budoucích FTP transakcí,
musíme opětovně zaslat identifikaci uživatele a heslo. Jinak příkazy jsou
neproveditelné.
procedure RemoveDir(DirectoryName: string);
Metoda je používána k odstraňování adresáře za vzdáleného
hostitele FTP. Parametr specifikuje jméno odstraňovaného adresáře. Může
to být jméno adresáře umístěného v současném pracovním adresáři nebo úplná
adresářová cesta. Pokud příkaz je úspěšný, pak je generována událost OnSuccess,
jinak událost OnFailure. V obou případech jako parametr Trans_Type
události je předáno cmdRemoveDir.
procedure Rename(Filename, FileName2: string);
Metoda je používána pro přejmenování souboru v současném
pracovním adresáři na vzdáleném hostiteli FTP. Parametr FileName
specifikuje jméno přejmenovávaného souboru. Parametr FileName2 určuje
nové jméno souboru. Tyto parametry mohou být jméno souboru v současném
pracovním adresáři nebo cesta a jméno souboru umístěného kdekoliv v systému.
Pokud příkaz je úspěšný, pak je generována událost OnSuccess, jinak
událost OnFailure. V obou případech jako parametr Trans_Type
události je předáno cmdRename.
procedure Upload(LocalFile, RemoteFile: string);
Metoda je používána pro odeslání souboru z lokálního
počítače na vzdáleného hostitele. Parametr LocalFile specifikuje
jméno souboru na lokálním počítači, který bude odeslán na vzdáleného hostitele.
Parametr RemoteFile specifikuje jméno, které bude mít odeslaný soubor
na vzdáleném hostiteli. Pokud soubor stejného jména již na vzdáleném hostiteli
existuje, pak je přepsán. Pokud příkaz je úspěšný, pak je generována událost
OnSuccess,
jinak událost OnFailure. V obou případech jako parametr Trans_Type
události je předáno cmdUpload.
procedure UploadAppend(LocalFile, RemoteFile: string);
Metoda je používána pro odeslání souboru z lokálního
počítače na vzdáleného hostitele. Pokud soubor stejného jména již existuje,
pak nový soubor je připojen na konec existujícího souboru. Parametr LocalFile
specifikuje jméno souboru na lokálním počítači, který bude odeslán na vzdáleného
hostitele. Parametr RemoteFile specifikuje jméno, které bude mít
odeslaný soubor na vzdáleném hostiteli. Pokud příkaz je úspěšný, pak je
generována událost
OnSuccess, jinak událost OnFailure. V
obou případech jako parametr Trans_Type události je předáno cmdAppend.
procedure UploadRestore(LocalFile, RemoteFile: string; Position:
Integer);
Metoda je používána pro pokračování v odesílání souboru
z lokálního počítače na vzdáleného hostitele FTP. Parametr LocalFile
specifikuje jméno souboru na lokálním počítači, který bude odeslán na vzdáleného
hostitele. Parametr RemoteFile specifikuje jméno, které bude mít
odeslaný soubor na vzdáleném hostiteli. Při použití této metody soubor
již musí na vzdáleném hostiteli existovat. Parametr Position specifikuje
od jaké pozice soubor bude přenášen. Pokud příkaz je úspěšný, pak je generována
událost OnSuccess, jinak událost OnFailure. V obou případech
jako parametr Trans_Type události je předáno cmdAUpRestore.
procedure UploadUnique(LocalFile: string);
Metoda je používána pro odeslání souboru z lokálního
počítače na vzdáleného hostitele. Jméno souboru na lokálním počítači je
použito jako jméno souboru na vzdáleném hostiteli. Pokud soubor tohoto
jména již existuje, pak pro soubor je použito unikátní jméno. Parametr
LocalFile
specifikuje jméno souboru na lokálním počítači, který bude odeslán na vzdáleného
hostitele. Pokud příkaz je úspěšný, pak je generována událost OnSuccess,
jinak událost OnFailure. V obou případech jako parametr Trans_Type
události je předáno cmdAUpload.
Komponenta TNMFTP používá následující události:
property OnAuthenticationFailed: THandlerEvent;
Událost vzniká, když vlastnost UserID nebo vlastnost
Password
je nepřípustná. Pokud parametr Handled je nastaven na true,
pak autentizace proběhne znova k dokončení přihlášení na vzdáleného hostitele.
Pokud parametr Handled je false (implicitně), nebo pokud
druhý pokus o přihlášení je neúspěšný, pak je generována výjimka.
property OnAuthenticationNeeded: THandlerEvent;
Vlastnost vzniká, když události UserID a Password
jsou prázdné. Pokud parametr Handled je false, pak je generována
výjimka. Jestliže Handled nastavíme na true a poskytneme
UserID
a/nebo
Password,
pak autentizace proběhne znova. Pokud podruhé je neúspěšná, pak je generována
výjimka a připojení je zrušeno. Tato událost obvykle nastává, když je volána
metoda Connect a identifikace uživatele nebo heslo není zadáno.
property OnFailure: TFailureEvent;
Událost je generována, pokud prováděný FTP příkaz je
neúspěšný. Pokud parametr Handled je nastaven na true, pak
výjimka není generována. Má-li hodnotu false, pak bude výjimka generována
podruhé k chybujícímu příkazu. Parametr Trans_Type specifikuje chybující
příkaz.
property OnListItem: TNMListItem;
Událost je generována pro každý prvek při rozkládání
seznamu souborů. Událost je generována metodami List a NList.
property OnSuccess: TSuccessEvent;
Událost je generována, když příkaz je úspěšně dokončen.
Parametr Trans_Type specifikuje dokončený příkaz.
property OnTransactionStart: TNotifyEvent;
Událost je generována vždy, když data jsou odesílána
ze vzdáleného hostitele na lokální počítač pomocí datového soketu. Tuto
událost generují následující metody: List, Download, UploadUnique,
Upload,
NList,
DownloadRestore,
UploadAppend
a UploadRestore.
property OnTransactionStop: TNotifyEvent;
Událost je generována vždy, když přenos dat ze vzdáleného
hostitele na lokální počítač je dokončen. Tuto událost generují následující
metody:
List,
Download,
UploadUnique,
Upload,
NList,
DownloadRestore,
UploadAppend
a UploadRestore.
property OnUnSupportedFunction: TUnsupportedEvent;
Tato událost nastává, když prováděný příkaz FTP je neúspěšný,
protože na vzdáleném hostiteli není implementován. Parametr Trans_Type
specifikuje tento příkaz.
property Decode: String; | Vlastnost obsahuje dekódovaný řetězec, na základě zakódovaného řetězce ve vlastnosti InputString. Pokud InputString není zakódované URL, pak Decode je stejné jako InputString. | Public | RunTime, ReadOnly |
property Encode: String; | Vlastnost obsahuje zakódovanou kopii URL z vlastnosti InputString. | Public | RunTime, ReadOnly |
property InputString: String; | Vlastnost obsahuje zakódovaná data k dekódování nebo standardní řetězec k zakódování. |
![]() ![]() ![]() |
|