SYNAPSE - Synchronous TCP/IP Library for Delphi
Other related information can be found at http://www.ararat.cz/synapse/
Třída: TUDPBlockSocket
- Property:
- socket:TSocket
Identifikátor Socketu. Hodí se k 'ručnímu' volání WinSock API, nebo k ručnímu připojení objektu k již vytvořenému socketu.
- LocalSin:TSockAddrIn
Struktura popisující místní stranu socketu.
- RemoteSin:TSockAddrIn
Struktura popisující vzdálenou stranu socketu.
- LastError:integer
Chybový kód poslední WinSock operace. Chybové kódy jsou popsány v dokumentaci Winsock. Voláním funkce GetErrorDesc(ErrorCode:integer):string, které předáte chybový kód, získáte slovní popis chyby.
- Protocol:integer
Winsock identifikátr protokolu.
- Metody:
- Procedure CreateSocket
Vytvoří ve WinSock nový socket.
- Procedure CloseSocket
Znicí ve WinSock používaný socket. Došlá data na tento secket budou nadále ignorována. Tato metoda je také automaticky vylána z destructoru objektu.
- procedure Bind(ip,port:string)
Připojí socket na místní IP adresu a PORT. IP adresa může být buď číselně vyjádřená nebo může být symbolický název (192.168.74.50, cosi.nekde.cz). Stejně tak PORT může být buď číslo nebo symolický název portu (23, telnet). Bude-li mít port hodnotu 0, systém sám vybere a připojí nepoužitý port v rozsahu 1024 až 4096. Po volání této metody je naplněna struktura LocalSin.
- procedure Connect(ip,port:string)
Připojí socket na vzdálenou IP adresu a PORT. Pro vyhodnocování IP a PORT platí totéž co u metody BIND, jen s tou výjimkou, že PORT s hodnotou 0 nebude připojen. Po volání této metody se vytvoří komunikační kanál mezi lokálním socketem (nebylo-li předem určeno voláním BIND, bude určeno automaticky systémem) a vzdáleným socketem. Struktury LocalSin a RemoteSin budou po této funkci naplněny platnými údaji.
- procedure SendBuffer(buffer:pointer;length:integer)
Odešle přes připojený socket datagram obsahující data z adresy BUFFER o délce LENGTH.
- procedure SendBufferTo(buffer:pointer;length:integer)
Stejné jako SendBuffer, ale odesle datagram na adresu podle RemoteSin. Vhodné na posílání odpovědi na datagram přijatým funkcí RecvBufferFrom.
- function RecvBuffer(buffer:pointer;length:integer):integer
Do alokovaného BUFFERu přijme první čekající datagram k přijmutí. nečeká-li žádný datagram, funkce bude čekat dokud nějaký nepřijde. Funkce vrací délku uloženého datagramu v BUFFERu. Je-li datagrm delší než buffer, bude oříznut.
- function RecvBufferFrom(buffer:pointer;length:integer):integer
Stejné jako RecvBuffer, ale RemoteSin naplní podle odesílatele přijmutého datagramu.
- function PeekBuffer(buffer:pointer;length:integer):integer
Stejné jako RecvBuffer, ale přečtená data zůstanou ve frontě přijatých dat.
- function WaitingData:integer
Vrátí délku prvního čekajícího datagramu. pokud žádný datagram nečeká k vyzvednutí, vrací 0.
- function CanRead(Timeout:integer):boolean
Vrátí TRUE, jestliže je možno ze socketu číst nějaké data. Stav je testován po dobu Timeout (vteřiny). Pokud má Timeout hodnotu 0, je stav jen otestován a program ihned pokračuje dále. Když má Timeout hodnotu -1, bude běh přerušen do té doby, dokud do socketu nepřijdou nějaké data.
- function CanWrite(Timeout:integer):boolean
Vrátí TRUE, jestliže je možno do socketu zapisovat nějaké data (tedy není-li plný odesílací buffer). Stav je testován po dobu Timeout (vteřiny). Pokud má Timeout hodnotu 0, je stav jen otestován a program ihned pokračuje dále. Když má Timeout hodnotu -1, bude běh přerušen do té doby, dokud nebude možno odeslat nějaké data.
- function SockCheck(SockResult:integer):integer
Voláte-li si sami WinSock API funkce, předejte jejich návratový kód jako parametr této funkci, která sama návratový kód vyhodností, zavolá připadne WSAGetLastError a zjistěný chybový kód jednak vrátí a jednak jej uloží do LastError.
- function LocalName:string
Vrátí jméno lokálního počítače. Buď jako symbolické jméno, nebo jako IP adresu. V každém případe vrácené jméno je ve formátu, které bude správně akceptováno funkcemi, které žádají vstupní paramtr IP.
- procedure GetSins
Aktualizuje hodnoty v LocalSin a RemoteSin.
- function GetLocalSinIP:string
Z LocalSin vyzvedne IP adresu socketu.
- function GetRemoteSinIP:string
Z RemoteSin vyzvedne IP adresu socketu.
- function GetLocalSinPort:integer
Z LocalSin vyzvedne číslo PORTu socketu.
- function GetRemoteSinPort:integer
Z RemoteSin vyzvedne číslo PORTu socketu.