StreamSocketListener Kelas

Definisi

Mendukung mendengarkan koneksi jaringan masuk menggunakan soket aliran TCP atau Bluetooth RFCOMM.

public ref class StreamSocketListener sealed : IClosable
/// [Windows.Foundation.Metadata.Activatable(65536, Windows.Foundation.UniversalApiContract)]
/// [Windows.Foundation.Metadata.ContractVersion(Windows.Foundation.UniversalApiContract, 65536)]
/// [Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
/// [Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
class StreamSocketListener final : IClosable
/// [Windows.Foundation.Metadata.ContractVersion(Windows.Foundation.UniversalApiContract, 65536)]
/// [Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
/// [Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
/// [Windows.Foundation.Metadata.Activatable(65536, "Windows.Foundation.UniversalApiContract")]
class StreamSocketListener final : IClosable
[Windows.Foundation.Metadata.Activatable(65536, typeof(Windows.Foundation.UniversalApiContract))]
[Windows.Foundation.Metadata.ContractVersion(typeof(Windows.Foundation.UniversalApiContract), 65536)]
[Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
[Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
public sealed class StreamSocketListener : System.IDisposable
[Windows.Foundation.Metadata.ContractVersion(typeof(Windows.Foundation.UniversalApiContract), 65536)]
[Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
[Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
[Windows.Foundation.Metadata.Activatable(65536, "Windows.Foundation.UniversalApiContract")]
public sealed class StreamSocketListener : System.IDisposable
function StreamSocketListener()
Public NotInheritable Class StreamSocketListener
Implements IDisposable
Warisan
Object Platform::Object IInspectable StreamSocketListener
Atribut
Penerapan

Persyaratan Windows

Rangkaian perangkat
Windows 10 (diperkenalkan dalam 10.0.10240.0)
API contract
Windows.Foundation.UniversalApiContract (diperkenalkan dalam v1.0)
Kemampuan aplikasi
bluetooth.rfcomm ID_CAP_NETWORKING [Windows Phone] internetClientServer privateNetworkClientServer

Keterangan

Kelas StreamSocketListener mendukung mendengarkan koneksi jaringan masuk menggunakan soket streaming dan menerima koneksi.

Urutan operasi yang khas adalah sebagai berikut:

  • Buat StreamSocketListener.
  • Gunakan properti Kontrol untuk mengambil objek StreamSocketListenerControl dan mengatur kualitas soket layanan yang diperlukan.
  • Tetapkan peristiwa ConnectionReceived ke penanganan aktivitas.
  • Panggil metode BindServiceNameAsync atau BindEndpointAsync untuk mengikat nomor port TCP lokal atau nama layanan. Untuk Bluetooth RFCOMM, parameter nama layanan lokal adalah ID Layanan Bluetooth.
  • Saat koneksi diterima, gunakan objek StreamSocketListenerConnectionReceivedEventArgs untuk mengambil properti Socket dengan objek StreamSocket yang dibuat.
  • Gunakan objek StreamSocket untuk mengirim dan menerima data.
  • Panggil metode Tutup untuk berhenti mendengarkan dan menerima koneksi jaringan masuk dan melepaskan semua sumber daya yang tidak terkelola yang terkait dengan objek StreamSocketListener. Setiap objek StreamSocket yang dibuat saat koneksi diterima tidak terpengaruh dan dapat terus digunakan sesuai kebutuhan.

Enumerasi SocketProtectionLevel memungkinkan server untuk mengontrol negosiasi protokol dengan klien saat menggunakan objek StreamSocketListener untuk mendengarkan dan mengikat soket melalui Bluetooth. Ketika objek StreamSocketListener digunakan melalui Bluetooth, nilai SocketProtectionLevel yang didukung adalah PlainSocket, BluetoothEncryptionAllowNullAuthentication, atau BluetoothEncryptionWithAuthentication. Ketika objek StreamSocketListener digunakan untuk mendengarkan dan mengikat soket yang tidak menggunakan Bluetooth, satu-satunya nilai SocketProtectionLevel yang didukung adalah PlainSocket.

Untuk menggunakan StreamSocketListener dengan Bluetooth, kemampuan perangkat bluetooth.rfcomm harus diatur dalam manifes aplikasi. Untuk informasi selengkapnya, lihat Cara menentukan kemampuan perangkat untuk Bluetooth.

Menangani pengecualian

Anda harus menulis kode untuk menangani pengecualian saat memanggil metode asinkron di kelas StreamSocketListener. Pengecualian dapat diakibatkan oleh kesalahan validasi parameter, kegagalan resolusi nama, dan kesalahan jaringan. Pengecualian dari kesalahan jaringan (hilangnya konektivitas, kegagalan koneksi, dan kegagalan server, misalnya) dapat terjadi kapan saja. Kesalahan ini mengakibatkan pengecualian dilemparkan. Jika tidak ditangani oleh aplikasi Anda, pengecualian dapat menyebabkan seluruh aplikasi Anda dihentikan oleh runtime.

Namespace Layanan Windows.Networking.Sockets memiliki fitur yang menyederhanakan penanganan kesalahan saat menggunakan soket. Metode GetStatus pada kelas SocketError dapat mengonversi HRESULT dari pengecualian ke nilai enumerasi SocketErrorStatus . Ini dapat berguna untuk menangani pengecualian jaringan tertentu secara berbeda di aplikasi Anda. Aplikasi juga dapat menggunakan HRESULT dari pengecualian tentang kesalahan validasi parameter untuk mempelajari informasi lebih rinci tentang kesalahan yang menyebabkan pengecualian.

Untuk informasi selengkapnya tentang kemungkinan pengecualian dan cara menangani pengecualian, lihat Menangani pengecualian di aplikasi jaringan.

Menggunakan StreamSocketListener dengan Bluetooth

Aplikasi Anda dapat menggunakan StreamSocketListener untuk mendengarkan koneksi jaringan melalui Bluetooth RFCOMM. Koneksi jaringan melalui Bluetooth menggunakan ID Layanan Bluetooth sebagai titik akhir untuk koneksi, bukan port IP atau nama layanan. Untuk mendengarkan Bluetooth, aplikasi Anda akan memanggil salah satu metode BindServiceNameAsync di StreamSocketListener dengan parameter localServiceName yang diatur ke ID Layanan Bluetooth.

Untuk menggunakan StreamSocketListener dan StreamSocket dengan Bluetooth, kemampuan perangkat bluetooth.rfcomm harus diatur dalam manifes aplikasi. Untuk informasi selengkapnya, lihat namespace Windows.Devices.Bluetooth.Rfcomm , Cara menentukan kemampuan perangkat untuk Bluetooth, dan sampel Obrolan Rfcomm Bluetooth.

Menggunakan StreamSocketListener di Windows Server 2012

Pada Windows Server 2012 dan Windows Server 2012 R2, Windows.Networking.dll yang mengimplementasikan sebagian besar kelas di namespace Layanan Windows.Networking.Sockets akan gagal dimuat kecuali fitur Media Foundation diaktifkan. Akibatnya, aplikasi yang menggunakan StreamSocketListener dan kelas soket terkait di namespace Windows.Networking.Sockets akan gagal jika fitur Media Foundation dinonaktifkan. Penginstalan Windows Server 2012 atau Windows Server 2012 R2 dengan fitur Media Foundation dinonaktifkan.

Fitur Media Foundation dapat diaktifkan pada Windows Server 2012 atau Windows Server 2012 R2 menggunakan Manajer Server atau dengan memasukkan teks berikut dalam perintah atau skrip:

dism /online /enable-feature /featurename:ServerMediaFoundation Setelah fitur Media Foundation diaktifkan, pengguna diminta untuk memulai ulang. Setelah komputer dimulai ulang, kelas untuk soket dan WebSocket di namespace Windows.Networking.Sockets akan berfungsi seperti yang diharapkan.

Konstruktor

StreamSocketListener()

Membuat objek StreamSocketListener baru.

Properti

Control

Mendapatkan data kontrol soket pada objek StreamSocketListener .

Information

Mendapatkan informasi soket untuk objek StreamSocketListener .

Metode

BindEndpointAsync(HostName, String)

Memulai operasi pengikatan pada StreamSocketListener ke nama host lokal dan nama layanan lokal.

BindServiceNameAsync(String)

Memulai operasi pengikatan pada StreamSocketListener ke nama layanan lokal.

BindServiceNameAsync(String, SocketProtectionLevel)

Memulai operasi pengikatan pada StreamSocketListener ke nama layanan lokal dengan SocketProtectionLevel tertentu untuk diatur pada soket terikat apa pun.

BindServiceNameAsync(String, SocketProtectionLevel, NetworkAdapter)

Memulai operasi pengikatan soket pada StreamSocketListener ke nama layanan lokal pada adaptor jaringan tertentu dengan SocketProtectionLevel tertentu untuk diatur pada soket terikat apa pun.

CancelIOAsync()

Membatalkan pembacaan dan penulisan yang tertunda melalui objek StreamSocketListener .

Close()

Menutup objek StreamSocketListener .

Dispose()

Melakukan tugas yang ditentukan aplikasi yang terkait dengan membebaskan, melepaskan, atau mereset sumber daya yang tidak terkelola.

EnableTransferOwnership(Guid)

Memungkinkan tugas latar belakang aplikasi Anda dipicu oleh broker soket saat lalu lintas untuk StreamSocketListener ini tiba saat aplikasi tidak aktif.

EnableTransferOwnership(Guid, SocketActivityConnectedStandbyAction)

Memungkinkan tugas latar belakang aplikasi Anda dipicu oleh broker soket saat lalu lintas untuk StreamSocketListener ini tiba saat sistem dalam siaga yang terhubung.

TransferOwnership(String)

Mentransfer kepemilikan StreamSocketListener ke layanan broker soket, yang memantau aktivitas soket dan memberi tahu aplikasi melalui tugas latar belakang jika ada aktivitas.

TransferOwnership(String, SocketActivityContext)

Mentransfer kepemilikan StreamSocketListener ke layanan broker soket, yang memantau aktivitas soket dan memberi tahu aplikasi melalui tugas latar belakang jika ada aktivitas.

Acara

ConnectionReceived

Peristiwa yang menunjukkan bahwa koneksi diterima pada objek StreamSocketListener .

Berlaku untuk

Lihat juga