Socket.IOControl 메서드

정의

Socket의 하위 수준 운영 모드를 설정합니다.

오버로드

IOControl(Int32, Byte[], Byte[])

숫자 컨트롤 코드를 사용하여 Socket의 하위 수준 운영 모드를 설정합니다.

IOControl(IOControlCode, Byte[], Byte[])

Socket 열거형으로 컨트롤 코드를 지정하여 IOControlCode의 하위 수준 운영 모드를 설정합니다.

IOControl(Int32, Byte[], Byte[])

Source:
Socket.cs
Source:
Socket.cs
Source:
Socket.cs

숫자 컨트롤 코드를 사용하여 Socket의 하위 수준 운영 모드를 설정합니다.

public int IOControl(int ioControlCode, byte[]? optionInValue, byte[]? optionOutValue);
public int IOControl(int ioControlCode, byte[] optionInValue, byte[] optionOutValue);

매개 변수

ioControlCode
Int32

수행할 작업의 컨트롤 코드를 지정하는 Int32 값입니다.

optionInValue
Byte[]

작업에 필요한 입력 데이터가 들어 있는 Byte 배열입니다.

optionOutValue
Byte[]

작업에서 반환된 출력 데이터가 들어 있는 Byte 배열입니다.

반환

optionOutValue 매개 변수의 바이트 수입니다.

예외

소켓에 액세스하는 동안 오류가 발생했습니다.

Socket이 닫혔습니다.

Blocking 속성을 사용하지 않고 블로킹 모드를 변경하려고 한 경우

호출 스택에 있는 호출자에게 필요한 권한이 없는 경우

예제

다음 코드 예제에서는 FIONREAD의 결과와 Available 속성을 비교합니다.

 // FIONREAD is also available as the "Available" property.
public const int FIONREAD   = 0x4004667F;

static void DisplayPendingByteCount(Socket s)
 {
     byte[] outValue = BitConverter.GetBytes(0);

     // Check how many bytes have been received.
     s.IOControl(FIONREAD, null, outValue);

     uint bytesAvailable = BitConverter.ToUInt32(outValue, 0);
     Console.WriteLine("server has {0} bytes pending. Available property says {1}.",
         bytesAvailable, s.Available);

     return;
 }

설명

메서드는 IOControl 클래스의 현재 instance Socket 기본 운영 Socket 체제에 대한 낮은 수준의 액세스를 제공합니다. 자세한 내용은 WSAIoctl 설명서를 참조하세요.

참고

을 수신하는 SocketException경우 속성을 사용하여 SocketException.ErrorCode 특정 오류 코드를 가져옵니다. 이 코드를 가져온 후 오류에 대한 자세한 설명은 Windows 소켓 버전 2 API 오류 코드 설명서를 참조하세요.

참고

애플리케이션에 네트워크 추적을 사용하도록 설정하면 이 멤버에서 추적 정보를 출력합니다. 자세한 내용은 .NET Framework 네트워크 추적을 참조하세요.

적용 대상

.NET 10 및 기타 버전
제품 버전
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9, 10
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 1.3, 1.4, 1.6, 2.0, 2.1

IOControl(IOControlCode, Byte[], Byte[])

Source:
Socket.cs
Source:
Socket.cs
Source:
Socket.cs

Socket 열거형으로 컨트롤 코드를 지정하여 IOControlCode의 하위 수준 운영 모드를 설정합니다.

public int IOControl(System.Net.Sockets.IOControlCode ioControlCode, byte[]? optionInValue, byte[]? optionOutValue);
public int IOControl(System.Net.Sockets.IOControlCode ioControlCode, byte[] optionInValue, byte[] optionOutValue);

매개 변수

ioControlCode
IOControlCode

수행할 작업의 컨트롤 코드를 지정하는 IOControlCode 값입니다.

optionInValue
Byte[]

해당 작업에 필요한 입력 데이터를 포함하는 Byte 형식의 배열입니다.

optionOutValue
Byte[]

해당 작업에서 반환된 출력 데이터를 포함하는 Byte 형식의 배열입니다.

반환

optionOutValue 매개 변수의 바이트 수입니다.

예외

소켓에 액세스하는 동안 오류가 발생했습니다.

Socket이 닫혔습니다.

Blocking 속성을 사용하지 않고 블로킹 모드를 변경하려고 한 경우

예제

다음 코드 예제를 사용 하 고 호출 IOControlDataToRead 의 결과 비교 합니다 Available 및 속성입니다.

static void DisplayPendingByteCount(Socket s)
{
    byte[] outValue = BitConverter.GetBytes(0);

    // Check how many bytes have been received.
    s.IOControl(IOControlCode.DataToRead, null, outValue);

    uint bytesAvailable = BitConverter.ToUInt32(outValue, 0);
    Console.Write("server has {0} bytes pending. ",
        bytesAvailable);
    Console.WriteLine("Available property says {1}.",
                     s.Available);

    return;
}

설명

이 메서드는 클래스의 현재 instance 기본 운영 체제 SocketSocket 대한 낮은 수준의 액세스를 제공합니다. 자세한 내용은 WSAIoctl 설명서를 참조하세요.

참고

을 수신하는 SocketException경우 속성을 사용하여 SocketException.ErrorCode 특정 오류 코드를 가져옵니다. 이 코드를 가져온 후 오류에 대한 자세한 설명은 Windows 소켓 버전 2 API 오류 코드 설명서를 참조하세요.

참고

애플리케이션에 네트워크 추적을 사용하도록 설정하면 이 멤버에서 추적 정보를 출력합니다. 자세한 내용은 .NET Framework 네트워크 추적을 참조하세요.

적용 대상

.NET 10 및 기타 버전
제품 버전
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9, 10
.NET Framework 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 1.3, 1.4, 1.6, 2.0, 2.1