CAsyncSocket::IOCtl
BOOLIOCtl (lpArgumentdelargolCommand,DWORD *);
Valor devuelto
Distinto de cero si la función es correcta; en caso contrario 0 y un código de error específico se pueden recuperar llamando GetLastError. Los errores siguientes se aplican a esta función miembro:
-
WSA&NOTINITIALISEDnbsp; Un éxito AfxSocketInit debe producirse antes de utilizar este API.
-
WSAE&NETDOWNnbsp; La aplicación de Windows Sockets detecta que el subsistema de red no.
-
WSAEI&NVALnbsp;lCommand no es un comando válido, o lpArgument no es un parámetro aceptable para lCommand, o el comando no es aplicable para el tipo de socket proporcionado.
-
WSAEI&NPROGRESSnbsp; Está en curso una operación bloqueo de Windows Sockets.
-
WSAE&NOTSOCKnbsp; El descriptor no es un socket.
Parámetros
lCommand
El comando para realizar en el zócalo.
lpArgument
Un puntero a un parámetro de lCommand.
Observaciones
Llame a esta función miembro para controlar el modo de un socket. Esta rutina puede utilizarse en cualquier socket en cualquier Estado. Se utiliza para obtener o recuperar los parámetros de funcionamiento asociados con el zócalo, independiente del subsistema de comunicaciones y Protocolo. Se admiten los siguientes comandos:
-
FIO&NBIOnbsp; Activar o desactivar el modo de bloqueos en el zócalo. El parámetro lpArgument puntos en una DWORD, que es distinto de cero si es modo de bloqueos a habilitarse y cero si se deshabilitará. Si AsyncSelect se ha emitido en un socket, cualquier intento de utilizar IOCtl para establecer el zócalo a modo de bloqueo fallará con WSAEINVAL. Para establecer el zócalo a modo de bloqueo y evitar el error WSAEINVAL , una aplicación debe primero deshabilitar AsyncSelect por llamada AsyncSelect con el parámetro de lEvent igual a 0, luego llamada IOCtl.
-
FIO&NREADnbsp; Determinar el número máximo de bytes que se puede leer con una llamada de recepción de este socket. Los puntos de parámetro de lpArgument en un DWORD que IOCtl almacena el resultado. Si este socket es de tipo SOCK_STREAM, FIONREAD devuelve la cantidad total de datos que pueden leerse en una sola recepción; Esto es normalmente el mismo como la cantidad total de datos en cola en el zócalo. Si este socket es de tipo SOCK_DGRAM, FIONREAD devuelve que el tamaño del primer datagrama en cola en el zócalo.
-
SIOCATMARKnbsp; Determinar si se ha leído todos los datos fuera de banda. Esto se aplica sólo a un zócalo de tipo SOCK_STREAM que se ha configurado para recepción en línea de datos fuera de banda (SO_OOBI&NLINE). Si no hay datos fuera de banda está esperando a ser leído, la operación devuelve cero. En caso contrario devuelve 0, y el siguiente recibir o ReceiveFrom realizado en el zócalo será recuperar algunos o todos los datos anteriores a la "marca"; la aplicación debe usar la operación SIOCATMARK para determinar si los datos se mantiene. Si no hay ningún dato normal anterior los datos (out-of-band) "urgentes", se recibirán en orden. (Tenga en cuenta que una recepción o ReceiveFrom nunca mezclar datos fuera de banda y normales en la misma llamada.) Los puntos de parámetro de lpArgument en un DWORD que IOCtl almacena el resultado.
Esta función es un subconjunto de ioctl() como se utiliza en Berkeley sockets. En particular, no hay ningún comando que es equivalente a FIOASYNC, mientras que SIOCATMARK es el comando sólo en el nivel de socket que es compatible.
Introducción a CAsyncSocket |nbsp; Miembros de clase | Diagrama de jerarquía
Vea tambié&nnbsp;CAsyncSocket::AsyncSelect, CAsyncSocket::Create, CAsyncSocket::GetSockOpt, CAsyncSocket::SetSockOpt