Socket.GetSocketOption 메서드
정의
중요
일부 정보는 릴리스되기 전에 상당 부분 수정될 수 있는 시험판 제품과 관련이 있습니다. Microsoft는 여기에 제공된 정보에 대해 어떠한 명시적이거나 묵시적인 보증도 하지 않습니다.
Socket 옵션의 값을 반환합니다.
오버로드
GetSocketOption(SocketOptionLevel, SocketOptionName, Byte[]) |
바이트 배열로 나타내는 지정된 Socket 옵션 설정을 반환합니다. |
GetSocketOption(SocketOptionLevel, SocketOptionName, Int32) |
배열의 지정된 Socket 옵션 값을 반환합니다. |
GetSocketOption(SocketOptionLevel, SocketOptionName) |
개체로 나타내는 지정된 Socket 옵션 값을 반환합니다. |
GetSocketOption(SocketOptionLevel, SocketOptionName, Byte[])
- 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 값 중 하나입니다.
예외
소켓에 액세스하는 동안 오류가 발생했습니다.
또는
.NET Compact Framework 애플리케이션에서 Windows CE 기본 버퍼 공간을 32768바이트로 설정한 경우. SetSocketOption을 호출하여 소켓당 버퍼 공간을 변경할 수 있습니다.
Socket이 닫혔습니다.
예제
다음 코드 예제에서는 LingerOption 및 Send 제한 시간 값을 검색하고 콘솔에 표시합니다.
Console::Write("This application will timeout if Send does not return within ");
Console::WriteLine(Encoding::ASCII->GetString(s->GetSocketOption(SocketOptionLevel::Socket, SocketOptionName::SendTimeout, 4)));
// Blocks until send returns.
int i = s->Send(msg);
// Blocks until read returns.
array<Byte>^ bytes = gcnew array<Byte>(1024);
s->Receive(bytes);
// Displays to the screen.
Console::WriteLine(Encoding::ASCII->GetString(bytes));
s->Shutdown(SocketShutdown::Both);
Console::Write("If data remains to be sent, this application will stay open for ");
Console::WriteLine(safe_cast<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
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 포함됩니다.
배열의 optionValue
길이가 지정된 Socket 옵션의 값을 저장하는 데 필요한 바이트 수보다 작은 경우 는 GetSocketOption 을 throw합니다 SocketException. 를 수신하는 SocketException경우 속성을 사용하여 SocketException.ErrorCode 특정 오류 코드를 가져옵니다. 이 코드를 가져온 후 오류에 대한 자세한 설명 은 Windows 소켓 버전 2 API 오류 코드 설명서를 참조하세요. 부울 값 또는 정수로 표시되는 소켓에 대해 이 오버로드를 사용합니다.
참고
애플리케이션에 네트워크 추적을 사용하도록 설정하면 이 멤버에서 추적 정보를 출력합니다. 자세한 내용은 .NET Framework 네트워크 추적을 참조하세요.
추가 정보
적용 대상
GetSocketOption(SocketOptionLevel, SocketOptionName, Int32)
- 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 형식의 배열입니다.
예외
소켓에 액세스하는 동안 오류가 발생했습니다.
또는
.NET Compact Framework 애플리케이션에서 Windows CE 기본 버퍼 공간을 32768바이트로 설정한 경우. SetSocketOption을 호출하여 소켓당 버퍼 공간을 변경할 수 있습니다.
Socket이 닫혔습니다.
예제
다음 코드 예제에서는 LingerOption 및 Send 제한 시간 값을 검색하고 콘솔에 표시합니다.
Console::Write("This application will timeout if Send does not return within ");
Console::WriteLine(Encoding::ASCII->GetString(s->GetSocketOption(SocketOptionLevel::Socket, SocketOptionName::SendTimeout, 4)));
// Blocks until send returns.
int i = s->Send(msg);
// Blocks until read returns.
array<Byte>^ bytes = gcnew array<Byte>(1024);
s->Receive(bytes);
// Displays to the screen.
Console::WriteLine(Encoding::ASCII->GetString(bytes));
s->Shutdown(SocketShutdown::Both);
Console::Write("If data remains to be sent, this application will stay open for ");
Console::WriteLine(safe_cast<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
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
반환된 바이트 배열의 최대 크기를 설정합니다. 옵션 값에 더 적은 바이트가 필요한 경우 배열에는 해당 바이트만 포함됩니다. 옵션 값에 더 많은 바이트가 필요한 경우 는 GetSocketOption 을 throw합니다 SocketException. 부울 값 또는 정수로 표시되는 소켓에 대해 이 오버로드를 사용합니다.
참고
를 수신하는 SocketException경우 속성을 사용하여 SocketException.ErrorCode 특정 오류 코드를 가져옵니다. 이 코드를 가져온 후 오류에 대한 자세한 설명 은 Windows 소켓 버전 2 API 오류 코드 설명서를 참조하세요.
참고
애플리케이션에 네트워크 추적을 사용하도록 설정하면 이 멤버에서 추적 정보를 출력합니다. 자세한 내용은 .NET Framework 네트워크 추적을 참조하세요.
추가 정보
적용 대상
GetSocketOption(SocketOptionLevel, SocketOptionName)
- 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
이 AddMembership이나 DropMembership으로 설정되면 반환 값은 MulticastOption 클래스의 인스턴스입니다.
optionName
이 다른 값이면 반환 값은 정수입니다.
예외
Socket이 닫혔습니다.
예제
다음 코드 예제에서는 LingerOption 및 Send 제한 시간 값을 검색하고 콘솔에 표시합니다.
Console::Write("This application will timeout if Send does not return within ");
Console::WriteLine(Encoding::ASCII->GetString(s->GetSocketOption(SocketOptionLevel::Socket, SocketOptionName::SendTimeout, 4)));
// Blocks until send returns.
int i = s->Send(msg);
// Blocks until read returns.
array<Byte>^ bytes = gcnew array<Byte>(1024);
s->Receive(bytes);
// Displays to the screen.
Console::WriteLine(Encoding::ASCII->GetString(bytes));
s->Shutdown(SocketShutdown::Both);
Console::Write("If data remains to be sent, this application will stay open for ");
Console::WriteLine(safe_cast<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
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의 동작을 결정합니다. 이 오버로드를 사용하여 , AddMembership및 DropMembershipSocket 옵션을 가져옵니다Linger. 옵션의 Linger 경우 매개 변수에 을 optionLevel
사용합니다Socket. 및 의 경우 AddMembership 를 사용합니다IP.DropMembership 위에 나열된 옵션의 값을 설정하려면 메서드를 SetSocketOption 사용합니다.
참고
를 수신하는 SocketException경우 속성을 사용하여 SocketException.ErrorCode 특정 오류 코드를 가져옵니다. 이 코드를 가져온 후 오류에 대한 자세한 설명 은 Windows 소켓 버전 2 API 오류 코드 설명서를 참조하세요.
참고
애플리케이션에 네트워크 추적을 사용하도록 설정하면 이 멤버에서 추적 정보를 출력합니다. 자세한 내용은 .NET Framework 네트워크 추적을 참조하세요.
추가 정보
적용 대상
.NET