CAsyncSocket::IOCtl
Volání funkce tohoto člena řízení režimu soket.
BOOL IOCtl(
long lCommand,
DWORD* lpArgument
);
Parametry
lCommand
Příkaz provést na soketu.lpArgument
Ukazatel na parametr pro lCommand .
Vrácená hodnota
Nenulová hodnota, pokud je tato funkce úspěšná. jinak 0 a kód chyby může být načten voláním GetLastError.Tato funkce člena vztahuje následující chyby:
WSANOTINITIALISED úspěšné AfxSocketInit musí dojít před použitím tohoto rozhraní API.
WSAENETDOWN implementace rozhraní Windows Sockets zjistil, že selhání síťového podsystému.
WSAEINVAL lCommandnení platný příkaz nebo lpArgument není přijatelné parametr pro lCommand , nebo příkaz není příslušný typ soketu dodány.
WSAEINPROGRESS právě probíhá blokující operace rozhraní Windows Sockets.
WSAENOTSOCK popisovač není soket.
Poznámky
Tato rutina lze použít na jakýkoliv soket v kterémkoli státě.Slouží k získání nebo načíst operační parametry přidružené k soketu nezávislé podsystému protokolu a komunikace.Podporovány jsou následující příkazy:
FIONBIO povolit nebo zakázat režim neblokový na soketu. lpArgument Parametr odkazuje na DWORD , což je nenulová hodnota, pokud je neblokový režim povolen a nula Pokud je zakázán.Pokud AsyncSelect byla vydána na soketu, pak jakéhokoli pokusu použít IOCtl nastavit režim blokování soketu se nezdaří s WSAEINVAL.Nastavit režim blokování soketu a WSAEINVAL Chyba aplikace musíte nejprve zakázat AsyncSelect voláním AsyncSelect s lEvent parametr roven 0, potom volat IOCtl.
FIONREAD určit maximální počet bajtů, které může číst s jedním příjem volání z tohoto soketu. lpArgument Parametr odkazuje na DWORD ve kterém IOCtl výsledek.Pokud je typ této soketu SOCK_STREAM, FIONREAD vrátí celkový objem dat, které lze číst v jediném příjem; To je obvykle stejné jako celkové množství dat ve frontě na soketu.Pokud je typ této soketu SOCK_DGRAM, FIONREAD vrátí velikost datagramu první ve frontě na soketu.
SIOCATMARK určit, zda všechna out-of-band data byla přečtena.Platí pouze pro typ soketu SOCK_STREAM nakonfigurován pro příjem řádek band data (SO_OOBINLINE).Pokud žádná out-of-band data čeká na čtení, vrátí nenulovou operace.V ostatních případech vrátí 0 a další příjem nebo ReceiveFrom na soketu použije některá nebo všechna data předcházející "značka"; aplikace by měly používat SIOCATMARK operace zjistit, zda zůstane žádná data.Pokud normální předcházejících "naléhavé" (out-of-band) data příjmu v pořadí.(Všimněte si, že příjem nebo ReceiveFrom se nikdy promíchá-band a normální data ve stejném volání.) lpArgument Parametr odkazuje na DWORD ve kterém IOCtl výsledek.
Tato funkce je podmnožinou ioctl() v Berkeley sockets.Zejména není žádný příkaz, který je ekvivalentní FIOASYNC, zatímco SIOCATMARK je pouze soketu úroveň příkaz, který je podporován.
Požadavky
Záhlaví: afxsock.h