Sdílet prostřednictvím


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

Viz také

Referenční dokumentace

Třída CAsyncSocket

Graf hierarchie

CAsyncSocket::AsyncSelect

CAsyncSocket::Create

CAsyncSocket::GetSockOpt

CAsyncSocket::SetSockOpt