Udostępnij za pośrednictwem


CAsyncSocket::IOCtl

Wywołanie tej funkcji Członkowskich kontroli tryb gniazda.

BOOL IOCtl( 
   long lCommand, 
   DWORD* lpArgument  
);

Parametry

  • lCommand
    Polecenia do wykonywania w gnieździe.

  • lpArgument
    Wskaźnik do parametru lCommand.

Wartość zwracana

Niezerowa, jeśli funkcja jest pomyślne; w przeciwnym razie 0 i kod błędu mogą być pobierane przez wywołanie GetLastError.Do tej funkcji Członkowskich stosuje się następujące błędy:

  • WSANOTINITIALISED pomyślnie AfxSocketInit musi wystąpić przed użyciem tego interfejsu API.

  • WSAENETDOWN implementacja Windows Sockets wykrył, że podsystem sieci nie powiodło się.

  • WSAEINVAL   lCommandnie jest prawidłowe polecenie lub lpArgument nie jest dopuszczalna parametr dla lCommand, lub polecenie nie ma zastosowania do typu gniazda dostarczone.

  • WSAEINPROGRESS jest wykonywana operacja blokująca Windows Sockets.

  • WSAENOTSOCK deskryptora nie jest gniazdem.

Uwagi

Tej procedury można na dowolnym gnieździe w każdym Państwie.Służy do uzyskania lub pobieranie parametrów operacyjnych związanych z gniazda, niezależny od protokołu i łączności podsystemu.Obsługiwane są następujące polecenia:

  • FIONBIO włączyć lub wyłączyć tryb nieblokujących w gnieździe.lpArgument Parametru wskazuje na DWORD, która jest różna od zera, jeśli ma zostać włączony tryb nieblokujących i zero, jeśli jest wyłączone.Jeśli AsyncSelect , a następnie próby użyć zostało wydane na gnieździe, IOCtl ustawić gniazdo trybu blokowania powiedzie się WSAEINVAL.Gniazdo do trybu blokowania i zapobiec WSAEINVAL błąd aplikacji należy najpierw wyłączyć AsyncSelect przez wywołanie AsyncSelect z lEvent parametru jest równa 0, następnie wywołać IOCtl.

  • FIONREAD określić maksymalną liczbę bajtów, które można odczytać z jednym odbioru wywołanie z tego gniazda.lpArgument Parametru wskazuje na DWORD w którym IOCtl przechowuje wynik.Jeżeli to gniazdo jest typu SOCK_STREAM, FIONREAD zwraca wartość całkowitą ilość danych, które mogą być odczytywane w jednym odbioru; to jest zwykle taka sama całkowitą ilość danych gniazdo w kolejce.Jeżeli to gniazdo jest typu SOCK_DGRAM, FIONREAD zwraca rozmiar datagramu pierwsze gniazdo w kolejce.

  • SIOCATMARK ustalić, czy wszystkie dane-band została przeczytana.Dotyczy to tylko gniazdo typu SOCK_STREAM został skonfigurowany do odbioru w linii danych-band (SO_OOBINLINE).Jeśli oczekuje żadnych danych-band odczytywane, operacji zwraca wartość niezerową.W przeciwnym razie zwraca 0 i następnej odbioru lub ReceiveFrom wykonywane na gniazdo pobierze niektóre lub wszystkie dane poprzedzających "znak"; aplikacja powinna używać SIOCATMARK operacji, aby ustalić, czy wszystkie dane pozostaje.W przypadku normalnych danych poprzedzającego dane "pilne" (out band), będą odbierane w kolejności.(Należy zauważyć, że odbioru lub ReceiveFrom nigdy nie będzie wymieszać-band i normalnych danych w tej samej rozmowy.) lpArgument Parametru wskazuje na DWORD w którym IOCtl przechowuje wynik.

Ta funkcja jest podzbiorem ioctl() w Berkeley sockets.W szczególności nie ma polecenia równoważnej FIOASYNC, podczas gdy SIOCATMARK jest polecenie tylko poziomie gniazda, który jest obsługiwany.

Wymagania

Nagłówek: afxsock.h

Zobacz też

Informacje

Klasa CAsyncSocket

Diagram hierarchii

CAsyncSocket::AsyncSelect

CAsyncSocket::Create

CAsyncSocket::GetSockOpt

CAsyncSocket::SetSockOpt