다음을 통해 공유


Socket.GetSocketOption 메서드

정의

옵션의 Socket 값을 반환합니다.

오버로드

Name Description
GetSocketOption(SocketOptionLevel, SocketOptionName)

개체로 표시된 지정된 Socket 옵션의 값을 반환합니다.

GetSocketOption(SocketOptionLevel, SocketOptionName, Byte[])

바이트 배열로 표시된 지정된 Socket 옵션 설정을 반환합니다.

GetSocketOption(SocketOptionLevel, SocketOptionName, Int32)

배열에서 지정된 Socket 옵션의 값을 반환합니다.

GetSocketOption(SocketOptionLevel, SocketOptionName)

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

개체로 표시된 지정된 Socket 옵션의 값을 반환합니다.

public:
 System::Object ^ GetSocketOption(System::Net::Sockets::SocketOptionLevel optionLevel, System::Net::Sockets::SocketOptionName optionName);
public object? GetSocketOption(System.Net.Sockets.SocketOptionLevel optionLevel, System.Net.Sockets.SocketOptionName optionName);
public object GetSocketOption(System.Net.Sockets.SocketOptionLevel optionLevel, System.Net.Sockets.SocketOptionName optionName);
member this.GetSocketOption : System.Net.Sockets.SocketOptionLevel * System.Net.Sockets.SocketOptionName -> obj
Public Function GetSocketOption (optionLevel As SocketOptionLevel, optionName As SocketOptionName) As Object

매개 변수

optionLevel
SocketOptionLevel

값 중 SocketOptionLevel 하나입니다.

optionName
SocketOptionName

값 중 SocketOptionName 하나입니다.

반환

옵션의 값을 나타내는 개체입니다. 매개 변수가 optionName 반환 값으로 Linger 설정된 경우 클래스의 LingerOption 인스턴스입니다. optionName 설정되거나 DropMembership설정 AddMembership 되면 반환 값은 클래스의 MulticastOption 인스턴스입니다. 다른 값인 경우 optionName 반환 값은 정수입니다.

예외

소켓에 액세스하려고 할 때 오류가 발생했습니다.

-또는-

optionName 가 지원되지 않는 값 MaxConnections으로 설정되었습니다.

Socket 닫혔습니다.

예제

다음 코드 예제에서는 LingerOptionSend 시간 제한 값을 검색하고 콘솔에 표시합니다.

Console.WriteLine("This application will timeout if Send does not return within " + Encoding.ASCII.GetString(s.GetSocketOption(SocketOptionLevel.Socket, SocketOptionName.SendTimeout, 4)));

// blocks until send returns
int i = s.Send(msg);

// blocks until read returns
byte[] bytes = new byte[1024];

s.Receive(bytes);

// Display to the screen
Console.WriteLine(Encoding.ASCII.GetString(bytes));
s.Shutdown(SocketShutdown.Both);
Console.WriteLine("If data remains to be sent, this application will stay open for " + ((LingerOption)s.GetSocketOption(SocketOptionLevel.Socket, SocketOptionName.Linger)).LingerTime.ToString());
s.Close();
    Console.WriteLine(("This application will timeout if Send does not return within " + Encoding.ASCII.GetString(s.GetSocketOption(SocketOptionLevel.Socket, SocketOptionName.SendTimeout, 4))))
    ' blocks until send returns
    Dim i As Integer = s.Send(msg)

    ' blocks until read returns
    Dim bytes(1024) As Byte
    s.Receive(bytes)

    'Display to the screen
    Console.WriteLine(Encoding.ASCII.GetString(bytes))
    s.Shutdown(SocketShutdown.Both)

    Console.WriteLine(("If data remains to be sent, this application will stay open for " + CType(s.GetSocketOption(SocketOptionLevel.Socket, SocketOptionName.Linger), LingerOption).LingerTime.ToString()))
    s.Close()
End Sub

설명

Socket 옵션은 현재 Socket.의 동작을 결정합니다. 이 오버로드를 사용하여 , AddMembershipDropMembershipSocket 옵션을 가져옵니다Linger. 옵션의 Linger 경우 매개 변수에 optionLevel 사용합니다Socket. For AddMembershipDropMembership, use IP. 위에 나열된 옵션의 값을 설정하려면 메서드를 SetSocketOption 사용합니다.

비고

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

비고

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

추가 정보

적용 대상

GetSocketOption(SocketOptionLevel, SocketOptionName, Byte[])

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

바이트 배열로 표시된 지정된 Socket 옵션 설정을 반환합니다.

public:
 void GetSocketOption(System::Net::Sockets::SocketOptionLevel optionLevel, System::Net::Sockets::SocketOptionName optionName, cli::array <System::Byte> ^ optionValue);
public void GetSocketOption(System.Net.Sockets.SocketOptionLevel optionLevel, System.Net.Sockets.SocketOptionName optionName, byte[] optionValue);
member this.GetSocketOption : System.Net.Sockets.SocketOptionLevel * System.Net.Sockets.SocketOptionName * byte[] -> unit
Public Sub GetSocketOption (optionLevel As SocketOptionLevel, optionName As SocketOptionName, optionValue As Byte())

매개 변수

optionLevel
SocketOptionLevel

값 중 SocketOptionLevel 하나입니다.

optionName
SocketOptionName

값 중 SocketOptionName 하나입니다.

optionValue
Byte[]

옵션 설정을 받을 형식 Byte 의 배열입니다.

예외

소켓에 액세스하려고 할 때 오류가 발생했습니다.

-또는-

.NET Compact Framework 애플리케이션에서 Windows CE 기본 버퍼 공간은 32768바이트로 설정됩니다. 를 호출 SetSocketOption하여 소켓당 버퍼 공간을 변경할 수 있습니다.

Socket 닫혔습니다.

예제

다음 코드 예제에서는 LingerOptionSend 시간 제한 값을 검색하고 콘솔에 표시합니다.

Console.WriteLine("This application will timeout if Send does not return within " + Encoding.ASCII.GetString(s.GetSocketOption(SocketOptionLevel.Socket, SocketOptionName.SendTimeout, 4)));

// blocks until send returns
int i = s.Send(msg);

// blocks until read returns
byte[] bytes = new byte[1024];

s.Receive(bytes);

// Display to the screen
Console.WriteLine(Encoding.ASCII.GetString(bytes));
s.Shutdown(SocketShutdown.Both);
Console.WriteLine("If data remains to be sent, this application will stay open for " + ((LingerOption)s.GetSocketOption(SocketOptionLevel.Socket, SocketOptionName.Linger)).LingerTime.ToString());
s.Close();
    Console.WriteLine(("This application will timeout if Send does not return within " + Encoding.ASCII.GetString(s.GetSocketOption(SocketOptionLevel.Socket, SocketOptionName.SendTimeout, 4))))
    ' blocks until send returns
    Dim i As Integer = s.Send(msg)

    ' blocks until read returns
    Dim bytes(1024) As Byte
    s.Receive(bytes)

    'Display to the screen
    Console.WriteLine(Encoding.ASCII.GetString(bytes))
    s.Shutdown(SocketShutdown.Both)

    Console.WriteLine(("If data remains to be sent, this application will stay open for " + CType(s.GetSocketOption(SocketOptionLevel.Socket, SocketOptionName.Linger), LingerOption).LingerTime.ToString()))
    s.Close()
End Sub

설명

Socket 옵션은 현재 Socket.의 동작을 결정합니다. 이 메서드가 성공적으로 완료되면 매개 변수로 지정된 배열에 optionValue 지정된 Socket 옵션의 값이 포함됩니다.

배열 길이가 지정된 Socket 옵션 GetSocketOptionoptionValue 값을 저장하는 데 필요한 바이트 수보다 작으면 .SocketException 받는 SocketException경우 속성을 사용하여 SocketException.ErrorCode 특정 오류 코드를 가져옵니다. 이 코드를 가져온 후 오류에 대한 자세한 설명은 Windows 소켓 버전 2 API 오류 코드 설명서를 참조하세요. 부울 값 또는 정수로 표시되는 모든 소켓에 대해 이 오버로드를 사용합니다.

비고

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

추가 정보

적용 대상

GetSocketOption(SocketOptionLevel, SocketOptionName, Int32)

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

배열에서 지정된 Socket 옵션의 값을 반환합니다.

public:
 cli::array <System::Byte> ^ GetSocketOption(System::Net::Sockets::SocketOptionLevel optionLevel, System::Net::Sockets::SocketOptionName optionName, int optionLength);
public byte[] GetSocketOption(System.Net.Sockets.SocketOptionLevel optionLevel, System.Net.Sockets.SocketOptionName optionName, int optionLength);
member this.GetSocketOption : System.Net.Sockets.SocketOptionLevel * System.Net.Sockets.SocketOptionName * int -> byte[]
Public Function GetSocketOption (optionLevel As SocketOptionLevel, optionName As SocketOptionName, optionLength As Integer) As Byte()

매개 변수

optionLevel
SocketOptionLevel

값 중 SocketOptionLevel 하나입니다.

optionName
SocketOptionName

값 중 SocketOptionName 하나입니다.

optionLength
Int32

예상 반환 값의 길이(바이트)입니다.

반환

Byte[]

소켓 옵션의 값을 포함하는 형식 Byte 의 배열입니다.

예외

소켓에 액세스하려고 할 때 오류가 발생했습니다.

-또는-

.NET Compact Framework 애플리케이션에서 Windows CE 기본 버퍼 공간은 32768바이트로 설정됩니다. 를 호출 SetSocketOption하여 소켓당 버퍼 공간을 변경할 수 있습니다.

Socket 닫혔습니다.

예제

다음 코드 예제에서는 LingerOptionSend 시간 제한 값을 검색하고 콘솔에 표시합니다.

Console.WriteLine("This application will timeout if Send does not return within " + Encoding.ASCII.GetString(s.GetSocketOption(SocketOptionLevel.Socket, SocketOptionName.SendTimeout, 4)));

// blocks until send returns
int i = s.Send(msg);

// blocks until read returns
byte[] bytes = new byte[1024];

s.Receive(bytes);

// Display to the screen
Console.WriteLine(Encoding.ASCII.GetString(bytes));
s.Shutdown(SocketShutdown.Both);
Console.WriteLine("If data remains to be sent, this application will stay open for " + ((LingerOption)s.GetSocketOption(SocketOptionLevel.Socket, SocketOptionName.Linger)).LingerTime.ToString());
s.Close();
    Console.WriteLine(("This application will timeout if Send does not return within " + Encoding.ASCII.GetString(s.GetSocketOption(SocketOptionLevel.Socket, SocketOptionName.SendTimeout, 4))))
    ' blocks until send returns
    Dim i As Integer = s.Send(msg)

    ' blocks until read returns
    Dim bytes(1024) As Byte
    s.Receive(bytes)

    'Display to the screen
    Console.WriteLine(Encoding.ASCII.GetString(bytes))
    s.Shutdown(SocketShutdown.Both)

    Console.WriteLine(("If data remains to be sent, this application will stay open for " + CType(s.GetSocketOption(SocketOptionLevel.Socket, SocketOptionName.Linger), LingerOption).LingerTime.ToString()))
    s.Close()
End Sub

설명

매개 변수는 optionLength 반환된 바이트 배열의 최대 크기를 설정합니다. 옵션 값에 더 적은 바이트가 필요한 경우 배열에는 해당 바이트만 포함됩니다. 옵션 값에 더 많은 바이트가 GetSocketOptionSocketException필요한 경우 . 부울 값 또는 정수로 표시되는 모든 소켓에 대해 이 오버로드를 사용합니다.

비고

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

비고

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

추가 정보

적용 대상