SocketType 열거형
정의
중요
일부 정보는 릴리스되기 전에 상당 부분 수정될 수 있는 시험판 제품과 관련이 있습니다. Microsoft는 여기에 제공된 정보에 대해 어떠한 명시적이거나 묵시적인 보증도 하지 않습니다.
Socket 클래스의 인스턴스가 나타내는 소켓 유형을 지정합니다.
public enum class SocketType
public enum SocketType
type SocketType =
Public Enum SocketType
- 상속
필드
| Name | 값 | Description |
|---|---|---|
| Unknown | -1 | 알 수 없는 Socket 형식을 지정합니다. |
| Stream | 1 | 데이터의 중복 없이 경계를 유지하지 않고 안정적인 양방향 연결 기반 바이트 스트림을 지원합니다. 이 유형의 A Socket 는 단일 피어와 통신하며 통신을 시작하기 전에 원격 호스트 연결이 필요합니다.
Stream는 Transmission Control Protocol( |
| Dgram | 2 | 고정된(일반적으로 작은) 최대 길이의 연결되지 않고 신뢰할 수 없는 메시지인 데이터그램을 지원합니다. 메시지가 손실되거나 중복될 수 있으며 순서가 잘못되었을 수 있습니다. 형식은 SocketDgram 데이터를 보내고 받기 전에 연결이 필요하지 않으며 여러 피어와 통신할 수 있습니다.
Dgram는 Datagram 프로토콜( |
| Raw | 3 | 기본 전송 프로토콜에 대한 액세스를 지원합니다. 를 사용하면 Raw인터넷 제어 메시지 프로토콜(.) 및 인터넷 그룹 관리 프로토콜( |
| Rdm | 4 | 연결이 없고 메시지 지향적이며 안정적으로 배달된 메시지를 지원하며 데이터의 메시지 경계를 유지합니다. Rdm(안정적으로 배달된 메시지) 메시지는 업데이트되지 않고 순서대로 도착합니다. 또한 메시지가 손실되면 보낸 사람에게 알림이 표시됩니다. usingSocket을 Rdm 초기화하는 경우 데이터를 보내고 받기 전에 원격 호스트 연결이 필요하지 않습니다. 를 사용하면 Rdm여러 피어와 통신할 수 있습니다. |
| Seqpacket | 5 | 네트워크를 통해 정렬된 바이트 스트림의 연결 지향적이고 안정적인 양방향 전송을 제공합니다. Seqpacket 는 데이터를 복제하지 않으며 데이터 스트림 내의 경계를 유지합니다. 형식은 SocketSeqpacket 단일 피어와 통신하고 통신을 시작하기 전에 원격 호스트 연결이 필요합니다. |
예제
다음 예제에서는 생성자에 대한 매개 변수로 SocketType.Stream 사용합니다Socket.
//Creates the Socket for sending data over TCP.
Socket s = new Socket(AddressFamily.InterNetwork, SocketType.Stream,
ProtocolType.Tcp );
// Connects to host using IPEndPoint.
s.Connect(EPhost);
if (!s.Connected)
{
strRetPage = "Unable to connect to host";
}
// Use the SelectWrite enumeration to obtain Socket status.
if(s.Poll(-1, SelectMode.SelectWrite)){
Console.WriteLine("This Socket is writable.");
}
else if (s.Poll(-1, SelectMode.SelectRead)){
Console.WriteLine("This Socket is readable." );
}
else if (s.Poll(-1, SelectMode.SelectError)){
Console.WriteLine("This Socket has an error.");
}
'Creates the Socket for sending data over TCP.
Dim s As New Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp)
' Connects to host using IPEndPoint.
s.Connect(EPhost)
If Not s.Connected Then
strRetPage = "Unable to connect to host"
End If
' Use the SelectWrite enumeration to obtain Socket status.
If s.Poll(- 1, SelectMode.SelectWrite) Then
Console.WriteLine("This Socket is writable.")
Else
If s.Poll(- 1, SelectMode.SelectRead) Then
Console.WriteLine(("This Socket is readable. "))
Else
If s.Poll(- 1, SelectMode.SelectError) Then
Console.WriteLine("This Socket has an error.")
End If
End If
End If
설명
Socket 데이터를 보내고 받기 전에 먼저 , a 및 AddressFamilyaSocketType를 ProtocolType사용하여 만들어야 합니다. 열거형은 SocketType 열려는 형식 Socket 을 정의하기 위한 몇 가지 옵션을 제공합니다.
메모
SocketType경우에 따라 암시적으로 .에서 ProtocolType사용되는 항목을 나타냅니다AddressFamily. 예를 들어 is인 System.Net.Sockets.SocketTypeSocketType.DgramSystem.Net.Sockets.ProtocolType 경우 항상 ProtocolType.Udp입니다. 이 System.Net.Sockets.SocketTypeSocketType.Stream 경우 System.Net.Sockets.ProtocolType 는 항상 ProtocolType.Tcp입니다. 호환되지 않는 조합 SocketSocket으로 SocketException 만들려는 경우 .