CAsyncSocket::IOCtl
BOOL IOCtl ( długą lCommand, DWORD * lpArgument );
Wartość zwracany
Niezerowa, jeśli funkcja jest skuteczne; w przeciwnym razie 0 i kod błędu mogą być pobierane przez wywołanie GetLastError. Następujące błędy stosuje się do tej funkcji członek:
-
WSA&NOTINITIALISEDnbsp; Pomyślnie AfxSocketInit musi wystąpić przed użyciem ten interfejs API.
-
WSAE&NETDOWNnbsp; Implementacja Windows Sockets wykrył, że podsystem sieci nie powiodło się.
-
WSAEI&NVALnbsp;lCommand nie jest prawidłowe polecenie lpArgument nie jest dopuszczalna parametr lCommandlub polecenie nie ma zastosowania do typu gniazda dostarczone.
-
WSAEI&NPROGRESSnbsp; Operacja blokująca Windows Sockets jest w toku.
-
WSAE&NOTSOCKnbsp; Deskryptor nie jest gniazdo.
Parametry
lCommand
Polecenie do wykonania na gniazdo.
lpArgument
Wskaźnik parametru lCommand.
Uwagi
Wywołanie tej funkcji członek kontroli tryb gniazdo. Ten rutynowych mogą być używane na każde gniazdo w każdym Państwie. Jest używany do uzyskania lub Pobierz parametry operacyjne związane z gniazda, niezależne od Podsystem protokołu i łączności. Obsługiwane są następujące polecenia:
-
FIO&NBIOnbsp; Włączyć lub wyłączyć tryb nieblokujących w gnieździe. Parametr lpArgument punktów w DWORD, która jest różna od zera, jeśli nieblokujących tryb ma być włączony, a wartość zero, jeśli jest wyłączone. Jeśli AsyncSelect zostało wydane na gnieździe, każda próba użyć IOCtl ustalenie gniazdo powrót do trybu blokowania będzie niepowodzeniem z WSAEINVAL. Gniazdo powrót do trybu blokowania i przeszkody błędzie WSAEINVAL , aplikacja musi najpierw wyłączyć AsyncSelect przez wywołanie AsyncSelect z parametrem lEvent równe 0, a następnie wywołania IOCtl.
-
FIO&NREADnbsp; Określić maksymalną liczbę bajtów, które mogą być odczytywane przez jedno wywołanie odbioru z tego gniazda. Punkty parametru lpArgument w DWORD w którym IOCtl przechowuje wyniki. W przypadku tego gniazda typu SOCK_STREAM, FIONREAD Zwraca całkowitą ilość danych, którymi można się zapoznać w pojedynczym odbioru; jest to zwykle takie same jak całkowita ilość danych w kolejce w gnieździe. W przypadku tego gniazda typu SOCK_DGRAM, FIONREAD zwraca rozmiar datagramu pierwszy w kolejce gniazdo.
-
SIOCATMARKnbsp; Określa, czy wszystkie dane z pozapasmowego została przeczytana. Odnosi się to jedynie do gniazda typu SOCK_STREAM , który został skonfigurowany dla śródwierszowych przyjmowania wszelkich danych poza pasmem (SO_OOBI&NLINE). Jeśli żadne dane z pozapasmowego jest oczekiwanie do odczytu, operacji zwraca wartość różną od zera. W przeciwnym wypadku zwraca wartość 0, a dalej odbioru lub ReceiveFrom wykonywane w gnieździe pobierze niektóre lub wszystkie dane poprzedzających "znak"; wniosek należy użyć operacji SIOCATMARK ustalenie, czy wszystkie dane pozostają. W przypadku normalnej danych poprzedzających "pilne" danych (poza zespołu), zostaną odebrane w kolejności. (Należy zauważyć, że przyjęcie lub ReceiveFrom nigdy nie będzie wymieszać z pozapasmowego i normalnych danych w ramach tego samego połączenia). LpArgument punktów parametr DWORD w którym IOCtl przechowuje wyniki.
Ta funkcja jest podzbiorem ioctl() używane w Berkeley gniazd. W szczególności nie istnieje żadne polecenie, które jest równoważne z FIOASYNC, podczas gdy SIOCATMARK jest polecenie tylko poziomie gniazda, która jest obsługiwana.
Omówienie CAsyncSocket |nbsp; Klasa członków | Wykres hierarchii
Zobacz też CAsyncSocket::AsyncSelect, CAsyncSocket::Create, CAsyncSocket::GetSockOpt, CAsyncSocket::SetSockOpt