Windows.Networking.Sockets Ruang nama
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.
Menyediakan kelas soket dan WebSocket untuk digunakan untuk komunikasi jaringan dan kelas untuk pemberitahuan jaringan real-time yang diterima di latar belakang untuk aplikasi Windows yang dikemas (termasuk aplikasi desktop UWP dan SDK Aplikasi Windows (WinUI 3).
Kelas
| Nama | Deskripsi |
|---|---|
| ControlChannelTrigger |
Memungkinkan pemberitahuan real time diterima di latar belakang untuk objek yang membuat koneksi TCP dan ingin diberi tahu tentang lalu lintas masuk. Panggil **BackgroundExecutionManager.RequestAccessAsync** sebelum menggunakan ControlChannelTrigger. |
| DatagramSocket |
Mendukung komunikasi jaringan menggunakan soket datagram UDP. Untuk contoh kode, lihat Soket. |
| DatagramSocketControl |
Menyediakan data kontrol soket pada objek DatagramSocket . |
| DatagramSocketInformation |
Menyediakan informasi soket pada objek DatagramSocket . |
| DatagramSocketMessageReceivedEventArgs |
Menyediakan data untuk peristiwa MessageReceived pada DatagramSocket. |
| MessageWebSocket |
Mendukung komunikasi jaringan yang memungkinkan membaca dan menulis seluruh pesan menggunakan WebSocket. |
| MessageWebSocketControl |
Menyediakan data kontrol soket pada MessageWebSocket. |
| MessageWebSocketInformation |
Menyediakan informasi soket pada MessageWebSocket. |
| MessageWebSocketMessageReceivedEventArgs |
Menyediakan data untuk peristiwa yang diterima pesan di MessageWebSocket. |
| ServerMessageWebSocket |
Mendukung komunikasi jaringan yang memungkinkan membaca dan menulis seluruh pesan menggunakan objek WebSocket yang dimiliki oleh server web. Anda tidak dapat mendaftar untuk koneksi WebSocket arbitrer; sebagai gantinya, instans ServerMessageWebSocket dibuat oleh kode sistem seperti Windows Device Portal (WDP). |
| ServerMessageWebSocketControl |
Menyediakan data kontrol soket pada ServerMessageWebSocket. |
| ServerMessageWebSocketInformation |
Menyediakan informasi soket pada ServerMessageWebSocket. |
| ServerStreamWebSocket |
Mendukung komunikasi jaringan yang memungkinkan membaca dan menulis aliran menggunakan objek WebSocket yang dimiliki oleh server web. Anda tidak dapat mendaftar untuk koneksi WebSocket arbitrer; sebagai gantinya, instans ServerStreamWebSocket dibuat oleh kode sistem seperti Windows Device Portal (WDP). |
| ServerStreamWebSocketInformation |
Menyediakan informasi soket pada objek ServerStreamWebSocket . |
| SocketActivityContext |
Konteks yang terkait dengan soket saat mentransfer kepemilikan soket antara aplikasi dan layanan broker soket. |
| SocketActivityInformation |
Menyediakan informasi tentang soket yang ditransfer dari Socket Broker. |
| SocketActivityTriggerDetails |
Objek yang dibuat oleh infrastruktur broker latar belakang dan digunakan oleh aplikasi untuk mengambil detail saat SocketActivityTrigger terjadi. |
| SocketError |
Menyediakan status kesalahan soket untuk operasi pada DatagramSocket, StreamSocket, atau StreamSocketListener. |
| StreamSocket |
Mendukung komunikasi jaringan menggunakan soket aliran melalui TCP atau Bluetooth RFCOMM di aplikasi UWP. |
| StreamSocketControl |
Menyediakan data kontrol soket pada objek StreamSocket . |
| StreamSocketInformation |
Menyediakan informasi soket pada objek StreamSocket . |
| StreamSocketListener |
Mendukung mendengarkan koneksi jaringan masuk menggunakan soket aliran TCP atau Bluetooth RFCOMM. |
| StreamSocketListenerConnectionReceivedEventArgs |
Menyediakan data untuk peristiwa ConnectionReceived pada objek StreamSocketListener . |
| StreamSocketListenerControl |
Menyediakan data kontrol soket pada objek StreamSocketListener . |
| StreamSocketListenerInformation |
Menyediakan informasi soket pada objek StreamSocketListener . |
| StreamWebSocket |
Mendukung komunikasi jaringan yang memungkinkan membaca dan menulis aliran menggunakan WebSocket. |
| StreamWebSocketControl |
Menyediakan data kontrol soket pada objek StreamWebSocket . |
| StreamWebSocketInformation |
Menyediakan informasi soket pada objek StreamWebSocket . |
| WebSocketClosedEventArgs |
Menyediakan data untuk peristiwa tertutup pada objek MessageWebSocket, StreamWebSocket, atau IWebSocket . |
| WebSocketError |
Menyediakan status kesalahan soket pada objek MessageWebSocket atau StreamWebSocket . |
| WebSocketKeepAlive |
Menyediakan kemampuan untuk mengirim protokol WebSocket tetap aktif di WebSocket yang terhubung. |
| WebSocketServerCustomValidationRequestedEventArgs |
Menyediakan data untuk peristiwa ServerCustomValidationRequested di WebSocket. Kejadian ini terjadi ketika koneksi baru yang aman ke WebSocket sedang dibuat, dan memberi kode Anda kesempatan untuk melakukan validasi kustom sertifikat server sebelum koneksi dibuat. |
Struct
| Nama | Deskripsi |
|---|---|
| BandwidthStatistics |
Mewakili informasi bandwidth untuk transfer data jaringan menggunakan objek StreamSocket, StreamWebSocket, atau MessageWebSocket . |
| RoundTripTimeStatistics |
Mewakili informasi waktu pulang pergi untuk objek StreamSocket . |
Antarmuka
| Nama | Deskripsi |
|---|---|
| IControlChannelTriggerEventDetails |
Objek yang dibuat oleh infrastruktur broker latar belakang yang digunakan untuk membedakan pemicu saluran kontrol. |
| IControlChannelTriggerResetEventDetails |
Objek yang dibuat oleh infrastruktur broker latar belakang untuk peristiwa ControlChannelReset untuk menunjukkan bahwa ControlChannelTrigger direset. |
| IWebSocket |
Menyediakan akses ke komunikasi jaringan yang memungkinkan membaca dan menulis menggunakan WebSocket. |
| IWebSocketControl |
Menyediakan data kontrol soket pada objek IWebSocket . |
| IWebSocketControl2 |
Menyediakan data kontrol soket pada objek IWebSocket . Antarmuka ini memperluas antarmuka IWebSocketControl dengan properti tambahan. |
| IWebSocketInformation |
Menyediakan informasi soket pada objek IWebSocket . |
| IWebSocketInformation2 |
Menyediakan informasi soket pada objek IWebSocket . Antarmuka ini memperluas IWebSocketInformation dengan properti tambahan. |
Enum
| Nama | Deskripsi |
|---|---|
| ControlChannelTriggerResetReason |
Alasan mengapa ControlChannelTrigger diatur ulang. |
| ControlChannelTriggerResourceType |
Jenis sumber daya yang digunakan oleh pemicu saluran kontrol. |
| ControlChannelTriggerStatus |
Menentukan apakah sistem dapat menyelesaikan konfigurasi objek ControlChannelTrigger untuk digunakan oleh elemen kelas dalam Windows. Networking.Sockets dan namespace terkait. |
| MessageWebSocketReceiveMode |
Menjelaskan jenis pesan yang akan diterima klien. |
| SocketActivityConnectedStandbyAction |
Menunjukkan apakah aplikasi yang menggunakan layanan perantara soket dapat menerima paket ketika sistem terhubung siaga. |
| SocketActivityKind |
Menjelaskan jenis objek soket yang ditransfer ke atau dari broker soket. |
| SocketActivityTriggerReason |
Alasan mengapa SocketActivityTrigger terjadi. |
| SocketErrorStatus |
Menentukan nilai status untuk operasi soket. |
| SocketMessageType |
Menentukan jenis pesan untuk objek MessageWebSocket . |
| SocketProtectionLevel |
Menentukan tingkat enkripsi yang akan digunakan pada objek StreamSocket . |
| SocketQualityOfService |
Menentukan kualitas layanan untuk objek DatagramSocket atau StreamSocket . |
| SocketSslErrorSeverity |
Kategori kesalahan yang terjadi pada koneksi SSL. |
Keterangan
Note
Kompatibilitas kerangka kerja aplikasi: Windows. API Networking.Sockets tersedia untuk aplikasi desktop SDK Aplikasi Windows (WinUI 3) dan aplikasi desktop Win32, tidak hanya aplikasi UWP. Aplikasi desktop yang dikemas menggunakan deklarasi kemampuan jaringan yang sama dengan aplikasi UWP. Aplikasi desktop yang tidak dikemas memiliki akses jaringan yang tidak dibatasi dan tidak perlu mendeklarasikan kemampuan. Untuk panduan, lihat Memanggil API Windows Runtime di aplikasi desktop.
Windows. Namespace networking.Sockets menyediakan kelas dan antarmuka untuk jaringan yang menggunakan soket dan WebSocket. Berikut adalah kelas utama.
- DatagramSocket. Soket datagram UDP yang digunakan untuk komunikasi jaringan.
- StreamSocket. Soket aliran yang digunakan untuk komunikasi jaringan masuk atau keluar melalui TCP atau melalui koneksi Bluetooth yang menggunakan RFCOMM.
- StreamSocketListener. Pendengar soket aliran untuk mendengarkan koneksi jaringan TCP masuk atau koneksi Bluetooth masuk yang menggunakan RFCOMM.
- MessageWebSocket. WebSocket berbasis pesan untuk membaca dan menulis seluruh pesan untuk komunikasi jaringan. Lihat WebSocket.
- StreamWebSocket. WebSocket berbasis aliran untuk membaca dan menulis aliran untuk komunikasi jaringan. Lihat WebSocket.
Kelas utama ini juga memiliki sejumlah informasi terkait dan kelas kontrol dalam Windows. Namespace networking.Sockets.
Menangani pengecualian
Anda harus menulis kode untuk menangani pengecualian ketika Anda memanggil metode asinkron di Windows. Namespace networking.Sockets. 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.
Windows. Namespace networking.Sockets memiliki metode pembantu dan enumerasi yang nyaman untuk menangani kesalahan saat menggunakan soket dan WebSocket. Ini dapat berguna untuk menangani pengecualian jaringan tertentu secara berbeda di aplikasi Anda. Aplikasi juga dapat menggunakan HRESULT dari pengecualian pada 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 StreamSocket dengan Kedekatan, Wi-Fi Direct, dan Bluetooth
Aplikasi Anda dapat menggunakan StreamSocket untuk koneksi jaringan antar perangkat yang berada dalam rentang dekat. Kelas di Windows. Namespace networking.Proximity mendukung koneksi jaringan dengan StreamSocket ke perangkat terdekat yang menggunakan Bluetooth atau Wi-Fi Direct. PeerFinder dan kelas terkait di Windows. Namespace networking.Proximity memungkinkan aplikasi Anda menemukan instans lain aplikasi Anda di perangkat terdekat. Metode PeerFinder.FindAllPeersAsync menelusuri komputer serekan yang menjalankan aplikasi yang sama dalam rentang nirkabel. Metode PeerFinder.ConnectAsync mengembalikan StreamSocket yang terhubung yang dapat digunakan aplikasi Anda untuk mentransfer data jaringan dengan aplikasi serekan terdekat. Untuk informasi selengkapnya, lihat Mendukung kedekatan dan penyadapan, Windows. Networking.Proximity, PeerFinder, dan sampel Kedekatan.
Aplikasi Anda juga dapat menggunakan StreamSocket untuk koneksi jaringan antar perangkat yang menggunakan Wi-Fi Direct dengan kelas di Windows. Namespace Devices.WiFiDirect. Kelas WiFiDirectDevice dapat digunakan untuk menemukan perangkat lain yang memiliki perangkat berkemampuan Wi-Fi Direct (WFD). Metode WiFiDirectDevice.GetDeviceSelector mendapatkan pengidentifikasi perangkat untuk perangkat WFD terdekat. Setelah Anda memiliki referensi ke perangkat WFD terdekat, Anda dapat memanggil metode WiFiDirectDevice.GetConnectionEndpointPairs untuk mendapatkan objek EndpointPair . Metode ConnectAsync(EndpointPair) atau ConnectAsync(EndpointPair, SocketProtectionLevel) pada kelas StreamSocket kemudian dapat digunakan untuk membuat koneksi soket. Untuk informasi selengkapnya, lihat Windows. Devices.WiFiDirect dan WiFiDirectDevice.
Bluetooth menggunakan ID Layanan Bluetooth sebagai titik akhir untuk koneksi StreamSocket , bukan nama host atau alamat IP. Untuk menggunakan StreamSocket dengan Bluetooth, kemampuan perangkat bluetooth.rfcomm harus diatur dalam manifes aplikasi. Untuk informasi selengkapnya, lihat Windows. Namespace Devices.Bluetooth.Rfcomm, Cara menentukan kemampuan perangkat untuk Bluetooth, dan sampel Obrolan Rfcomm Bluetooth.
Menggunakan DatagramSocket dengan Wi-Fi Direct
Aplikasi Anda dapat menggunakan DatagramSocket untuk transfer data jaringan antar perangkat yang menggunakan Wi-Fi Direct menggunakan kelas di Windows. Namespace Devices.WiFiDirect. Kelas WiFiDirectDevice dapat digunakan untuk menemukan perangkat lain yang memiliki perangkat berkemampuan Wi-Fi Direct (WFD). Metode WiFiDirectDevice.GetDeviceSelector mendapatkan pengidentifikasi perangkat untuk perangkat WFD terdekat. Setelah Anda memiliki referensi ke perangkat WFD terdekat, Anda dapat memanggil metode WiFiDirectDevice.GetConnectionEndpointPairs untuk mendapatkan objek EndpointPair . Metode pada kelas DatagramSocket dapat digunakan untuk mengirim dan menerima data ke objek EndpointPair . Untuk informasi selengkapnya, lihat Windows. Devices.WiFiDirect dan WiFiDirectDevice.
Menggunakan pemicu jaringan
Windows. Namespace networking.Sockets menawarkan dua jenis pemicu yang dapat digunakan aplikasi Anda untuk jaringan latar belakang: ControlChannelTrigger dan SocketActivityTrigger.
Mengontrol pemicu saluran
ControlChannelTrigger memungkinkan aplikasi Anda menerima paket data jaringan dan keepalive jaringan saat aplikasi berada di latar belakang. Ini memungkinkan aplikasi Anda memberikan status real-time dan pemberitahuan jaringan untuk StreamSocket di Windows. Namespace networking.Sockets dan kelas jaringan lainnya di namespace terkait.
Pemicu jaringan digunakan oleh aplikasi jaringan yang berjalan lama (misalnya, aplikasi email) untuk meminimalkan penggunaan sumber daya jaringan dan sistem. Pemicu jaringan memungkinkan aplikasi turun ke mode daya rendah untuk jangka waktu tertentu, menjaga koneksi jaringan tetap utuh tetapi dalam status daya rendah. Anda dapat mengatur interval keepalive untuk memberi tahu sistem kapan aplikasi harus bangun. Anda juga dapat mengatur pemicu untuk diberi tahu saat paket diterima untuk aplikasi. Fitur pemberitahuan ini dapat membantu memperpanjang masa pakai baterai saat menggunakan aplikasi jaringan yang berjalan lama di perangkat seluler.
Untuk informasi selengkapnya, lihat kelas ControlChannelTrigger dan Cara mengatur opsi konektivitas latar belakang.
Pemicu aktivitas soket
SocketActivityTrigger memungkinkan aplikasi Anda menerima paket data jaringan saat tidak aktif (bahkan jika ditangguhkan atau dihentikan), dan bahkan ketika saat ini tidak dimuat dalam memori. Ini disediakan terutama untuk aplikasi yang menyediakan layanan jaringan, di mana aplikasi akan mendaftar sebagai penyedia layanan melalui DNS-SD, dan kemudian menjadi tidak aktif. SocketActivityTrigger akan memberi tahu aplikasi saat klien terhubung ke layanan, sehingga layanan dapat mengaktifkan dan menyediakan layanan yang diminta. SocketActivityTrigger juga dapat digunakan dalam keadaan lain. Gunakan kapan pun Anda ingin dapat mengaktifkan aplikasi Anda sebagai respons terhadap lalu lintas jaringan yang diterima.
Jika aplikasi Anda menggunakan pemicu aktivitas soket, Anda harus menentukan kemampuan pushNotifications dalam manifes aplikasi.
Memilih pemicu jaringan
Ada beberapa skenario di mana salah satu jenis pemicu akan cocok. Saat Anda memilih jenis pemicu mana yang akan digunakan di aplikasi Anda, pertimbangkan saran berikut.
- Jika Anda menggunakan IXMLHTTPRequest2, System.Net.Http.Http.HttpClient atau System.Net.Http.HttpClientHandler, Anda harus menggunakan ControlChannelTrigger.
- Jika Anda menggunakan StreamSocket yang diaktifkan push, pilih SocketActivityTrigger. Ini memungkinkan sistem untuk membebaskan memori dan mengurangi persyaratan daya ketika koneksi tidak digunakan secara aktif.
- Jika Anda ingin meminimalkan jejak memori aplikasi Anda saat tidak aktif melayani permintaan jaringan, pilih SocketActivityTrigger.
- Jika Anda ingin aplikasi Anda dapat menerima data saat sistem dalam mode Siaga Terhubung, gunakan SocketActivityTrigger.
Menggunakan soket dan WebSocket di Windows Server 2012
Pada Windows Server 2012 dan Windows Server 2012 R2, Windows.Networking.dll yang mengimplementasikan sebagian besar kelas dalam Windows. Namespace networking.Sockets akan gagal dimuat kecuali fitur Media Foundation diaktifkan. Akibatnya, aplikasi yang menggunakan soket atau kelas WebSockets di Windows. Namespace networking.Sockets akan gagal jika fitur Media Foundation dinonaktifkan. Windows Server 2012 atau Windows Server 2012 R2 diinstal dengan fitur Media Foundation dinonaktifkan.
Fitur Media Foundation dapat diaktifkan pada Windows Server 2012 atau Windows Server 2012 R2 menggunakan Server Manager atau dengan memasukkan teks berikut dalam prompt 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 Windows. Namespace networking.Sockets akan berfungsi seperti yang diharapkan.
Menggunakan soket dan WebSocket dengan isolasi jaringan
Isolasi jaringan dalam Windows memungkinkan Anda sepenuhnya mengontrol profil keamanan aplikasi paket (termasuk aplikasi desktop UWP dan paket SDK Aplikasi Windows (WinUI 3).
Isolasi jaringan memungkinkan Anda menentukan akses jaringan yang diperlukan untuk setiap aplikasi dengan memilih kemampuan yang sesuai. Aplikasi tanpa set kemampuan yang sesuai dicegah menggunakan jenis jaringan tertentu (Internet atau Jaringan Rumah/Kantor) dan permintaan jaringan tertentu (permintaan yang dimulai klien keluar, atau permintaan masuk yang tidak diminta dan permintaan keluar yang dimulai klien). Kemampuan untuk memberlakukan isolasi jaringan memastikan bahwa bahkan jika aplikasi disusupi, aplikasi hanya dapat menggunakan fitur (jenis jaringan dan permintaan jaringan, misalnya) bahwa aplikasi diberikan sebagai kemampuan. Ini secara signifikan mengurangi kemungkinan dampak pada aplikasi lain dan pada sistem operasi.
Windows secara aktif memberlakukan isolasi jaringan. Panggilan ke metode atau akses apa pun ke properti di Windows. Namespace networking.Sockets (atau namespace terkait yang memerlukan akses jaringan) mungkin gagal jika kemampuan jaringan yang sesuai belum diaktifkan.
Kemampuan jaringan untuk aplikasi dikonfigurasi dalam manifes aplikasi saat aplikasi dibuat. Kemampuan jaringan biasanya ditambahkan menggunakan Visual Studio saat Anda mengembangkan aplikasi. Mereka juga dapat diatur secara manual dalam file manifes aplikasi menggunakan editor teks. Aplikasi desktop yang tidak dikemas tidak tunduk pada isolasi jaringan dan tidak perlu mendeklarasikan kemampuan jaringan.
Untuk informasi selengkapnya tentang isolasi jaringan, lihat Cara mengonfigurasi kemampuan isolasi jaringan.
Lihat juga
- PeerFinder
- WiFiDirectDevice
- Windows.Devices.Bluetooth.Rfcomm
- Windows.Devices.WiFiDirect
- Windows.Networking
- Windows.Networking.Connectivity
- Windows.Networking.Proximity
- Menambahkan dukungan untuk jaringan
- Menyambungkan dengan soket
- WebSockets
- Menangani pengecualian di aplikasi jaringan
- Cara mengonfigurasi kemampuan isolasi jaringan
- Cara mengatur opsi konektivitas latar belakang
- Cara menentukan kemampuan perangkat untuk Bluetooth
- Mendukung kedekatan dan penyadapan
- Pemecahan masalah dan penelusuran kesalahan koneksi jaringan
- SetSocketMediaStreamingMode
- Sampel Obrolan Rfcomm Bluetooth
- Sampel DatagramSocket
- Sampel ControlChannelTrigger StreamWebSocket
- Sampel soket TCP ControlChannelTrigger
- Sampel kedekatan
- Sampel StreamSocket
- Sampel DatagramSocket
- Sampel WebSocket
- Sampel StreamSocket
- sampelWi-Fi Direct
- sampel layanan Wi-Fi Direct (Windows 10)
- Sampel soket aliran pemicu aktivitas soket