SocketType Enum
Definisi
Penting
Beberapa informasi terkait produk prarilis yang dapat diubah secara signifikan sebelum dirilis. Microsoft tidak memberikan jaminan, tersirat maupun tersurat, sehubungan dengan informasi yang diberikan di sini.
Menentukan jenis soket yang diwakili instans kelas Socket.
public enum class SocketType
public enum SocketType
type SocketType =
Public Enum SocketType
- Warisan
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 ( |
| 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 ( |
| Raw | 3 | Mendukung akses ke protokol transportasi yang mendasar. Menggunakan Raw, Anda dapat berkomunikasi menggunakan protokol seperti Internet Control Message Protocol ( |
| 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.