ioctlsocket

ioctlsocket 함수는 소켓의 입출력 모드를 제어하는 함수입니다.

int ioctlsocket (
        SOCKET   
s,
        long   
cmd,
        u_long FAR*   
argp
);

 

Parameters

s
[입력] 작업대상 소켓의 기술자(descriptor)를 명시합니다.

cmd
[입력] 소켓 s가 수행할 컴맨드(command)

argp
[입/출력] command에 대한 입/출력 파라메터로 사용됩니다.

Remarks

ioctlsocket 함수는 특정한 상태로 지정한 소켓을 제어하는데 사용됩니다. 이 함수는 소켓과 연관된 매개변수를 반환하거나, 설정 할 수 있습니다. 아래에 cmd 매개변수와 사용방법에 대해서 지원되는 컴맨드를 나열해 보았습니다. 참고하세요.

Compatibility

ioctlsocket 함수는 버클리 소켓의 ioctl 함수와 비교해 볼 때 극히 일부분에 대해서만 동작 합니다. ioctlsocket 함수는 ioctl 함수의 FIOASYNC와 같은 컴맨트 매개변수를 지원하지 않습니다. 그리고, SIOCATMARK 컴맨드는 ioctrlsocket 함수에서만 제공되는 컴맨드 입니다.

Return Values

성공적으로 함수가 수행하면, ioctlsocket 함수는 0을 반환 합니다. 에러가 발생한 경우는 SOCK_ERROR을 반환하고, WSAGetLastError 함수를 이용해서 특정한 에러코드를 얻을 수 있습니다.

Error Codes

WSANOTINITIALISED

이 함수를 사용하기 전에 성공적인 WSAStartup 함수의 호출이 없었습니다.

WSAENETDOWN 네트웍 서브 시스템에 에러가 발생했습니다.
WSAEINPROGRESS

블럭킹 윈속 v1.1 이 현재 진행 중이거나, 서비스 프로바이더가 콜백 함수를 여전히 처리하고 있습니다.

WSAENOTSOCK

기술자(descriptor)가 소켓 기술자가 아닙니다.

WSAEFAULT argp 매개변수가 올바를 형태가 아닙니다.

QuickInfo

Windows NT : 사용가능
Windows : 사용가능
Windows CE : 버젼 1.0 그리고 그이후의 버젼에서 사용가능
Header :
          Win16/32 : winsock.h
          Win32-II : winsock2.h
Import Library :
          Win16 : winsock.lib
          Win32 : wsock32.lib
          Win32-II : ws2_32.lib

See Also

overview, getsockopt, setsockopt, socket, WSAAsyncSelect, WSAEventSelect, WSAIoctl