SocketType Enum

Definisi

Menentukan jenis soket yang diwakili instans kelas Socket.

public enum class SocketType
public enum SocketType
type SocketType = 
Public Enum SocketType
Warisan
SocketType

Bidang

Nama Nilai Deskripsi
Unknown -1

Menentukan tipe yang tidak diketahui Socket .

Stream 1

Mendukung aliran byte berbasis koneksi yang andal, dua arah tanpa duplikasi data dan tanpa pelestarian batas. Socket Jenis ini berkomunikasi dengan satu rekan dan memerlukan koneksi host jarak jauh sebelum komunikasi dapat dimulai. Streammenggunakan Protokol Kontrol Transmisi (ProtocolType.Tcp) dan AddressFamilykeluarga alamat .InterNetwork

Dgram 2

Mendukung datagram, yang merupakan pesan tanpa koneksi dan tidak dapat diandalkan dari panjang maksimum tetap (biasanya kecil). Pesan mungkin hilang atau diduplikasi dan mungkin tidak berurutan. Socket Jenis Dgram tidak memerlukan koneksi sebelum mengirim dan menerima data, dan dapat berkomunikasi dengan beberapa rekan. Dgrammenggunakan Protokol Datagram (ProtocolType.Udp) dan AddressFamilykeluarga alamat .InterNetwork

Raw 3

Mendukung akses ke protokol transportasi yang mendasar. Menggunakan Raw, Anda dapat berkomunikasi menggunakan protokol seperti Internet Control Message Protocol (ProtocolType.Icmp) dan Internet Group Management Protocol (ProtocolType.Igmp). Aplikasi Anda harus menyediakan header IP lengkap saat mengirim. Datagram yang diterima kembali dengan header IP dan opsi secara utuh.

Rdm 4

Mendukung pesan tanpa koneksi, berorientasi pesan, terkirim dengan andal, dan mempertahankan batas pesan dalam data. Pesan Rdm (Pesan yang Dikirim Dengan Andal) tiba secara tidak terganggu dan berurutan. Selain itu, pengirim diberi tahu jika pesan hilang. Jika Anda menginisialisasi Socket penggunaan Rdm, Anda tidak memerlukan koneksi host jarak jauh sebelum mengirim dan menerima data. Dengan Rdm, Anda dapat berkomunikasi dengan beberapa rekan.

Seqpacket 5

Menyediakan transfer dua arah yang berorientasi koneksi dan andal dari aliran byte yang dipesan di seluruh jaringan. Seqpacket tidak menduplikasi data, dan mempertahankan batas dalam aliran data. Socket Jenis Seqpacket berkomunikasi dengan satu peer dan memerlukan koneksi host jarak jauh sebelum komunikasi dapat dimulai.

Contoh

Contoh berikut menggunakan SocketType.Stream sebagai parameter untuk Socket konstruktor.

//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

Keterangan

Socket Sebelum dapat mengirim dan menerima data, data harus terlebih dahulu dibuat menggunakan AddressFamily, , SocketTypedan ProtocolType. Enumerasi SocketType menyediakan beberapa opsi untuk menentukan jenis Socket yang ingin Anda buka.

Note

SocketType terkadang secara implisit menunjukkan mana yang ProtocolType digunakan dalam AddressFamily. Misalnya, ketika System.Net.Sockets.SocketType adalah SocketType.Dgram, System.Net.Sockets.ProtocolType selalu ProtocolType.Udp. System.Net.Sockets.SocketType Ketika adalah SocketType.Stream, System.Net.Sockets.ProtocolType selalu ProtocolType.Tcp. Jika Anda mencoba membuat Socket dengan kombinasi yang tidak kompatibel, Socket melempar SocketException.

Berlaku untuk

Lihat juga