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 WebSockets untuk digunakan untuk komunikasi jaringan dan kelas untuk pemberitahuan jaringan real time yang diterima di latar belakang untuk aplikasi UWP.
Kelas
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. Catatan Kelas ini tidak didukung pada Windows Phone. |
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 pesan yang diterima 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 Broker Soket. |
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 hidup 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
BandwidthStatistics |
Mewakili informasi bandwidth untuk transfer data jaringan menggunakan objek StreamSocket, StreamWebSocket, atau MessageWebSocket . |
RoundTripTimeStatistics |
Mewakili informasi waktu pulang pergi untuk objek StreamSocket . |
Antarmuka
IControlChannelTriggerEventDetails |
Objek yang dibuat oleh infrastruktur broker latar belakang yang digunakan untuk membedakan pemicu saluran kontrol. Catatan Antarmuka ini tidak didukung pada Windows Phone. |
IControlChannelTriggerResetEventDetails |
Objek yang dibuat oleh infrastruktur broker latar belakang untuk peristiwa ControlChannelReset untuk menunjukkan bahwa ControlChannelTrigger direset. Catatan Antarmuka ini tidak didukung pada Windows Phone. |
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
ControlChannelTriggerResetReason |
Alasan mengapa ControlChannelTrigger diatur ulang. Catatan Enumerasi ini tidak didukung pada Windows Phone. |
ControlChannelTriggerResourceType |
Jenis sumber daya yang digunakan oleh pemicu saluran kontrol. Catatan Enumerasi ini tidak didukung pada Windows Phone. |
ControlChannelTriggerStatus |
Menentukan apakah sistem dapat menyelesaikan konfigurasi objek ControlChannelTrigger untuk digunakan oleh elemen kelas di Windows.Networking.Sockets dan namespace terkait. Catatan Enumerasi ini tidak didukung pada Windows Phone. |
MessageWebSocketReceiveMode |
Menjelaskan jenis pesan yang akan diterima klien. |
SocketActivityConnectedStandbyAction |
Menunjukkan apakah aplikasi yang menggunakan layanan broker soket dapat menerima paket saat sistem tersambung 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
Namespace Layanan Windows.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 di namespace Layanan Windows.Networking.Sockets.
Menangani pengecualian
Anda harus menulis kode untuk menangani pengecualian ketika Anda memanggil metode asinkron di namespace Layanan Windows.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.
Namespace layanan Windows.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 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 StreamSocket dengan Kedekatan, Wi-Fi Direct, dan Bluetooth
Aplikasi Anda dapat menggunakan StreamSocket untuk koneksi jaringan antar perangkat yang berada dalam jarak dekat. Kelas di namespace Layanan Windows.Networking.Proximity mendukung koneksi jaringan dengan StreamSocket ke perangkat terdekat yang menggunakan Bluetooth atau Wi-Fi Direct. PeerFinder dan kelas terkait di namespace Windows.Networking.Proximity memungkinkan aplikasi Anda menemukan instans lain dari 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 mengetuk, 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 namespace Windows.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 namespace Windows.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 namespace Windows.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
Namespace layanan Windows.Networking.Sockets menawarkan dua jenis pemicu yang dapat digunakan aplikasi Anda untuk jaringan latar belakang: ControlChannelTrigger dan SocketActivityTrigger.
Pemicu saluran kontrol
ControlChannelTrigger memungkinkan aplikasi Anda menerima paket data jaringan dan keepalives jaringan saat aplikasi berada di latar belakang. Ini memungkinkan aplikasi Anda memberikan status real-time dan pemberitahuan jaringan untuk StreamSocket di namespace Layanan Windows.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.HttpClient atau System.Net.Http.HttpClientHandler, Anda harus menggunakan ControlChannelTrigger.
- Jika Anda menggunakan StreamSocket yang mendukung 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 secara 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 di namespace Windows.Networking.Sockets akan gagal dimuat kecuali fitur Media Foundation diaktifkan. Akibatnya, aplikasi yang menggunakan kelas soket atau WebSocket 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 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 namespace Layanan Windows.Networking.Sockets akan berfungsi seperti yang diharapkan.
Menggunakan soket dan WebSocket dengan isolasi jaringan
Isolasi jaringan di Windows 8 memungkinkan Anda sepenuhnya mengontrol profil keamanan aplikasi UWP.
Isolasi jaringan memungkinkan Anda menentukan akses jaringan yang diperlukan untuk setiap aplikasi dengan memilih kemampuan yang sesuai. Aplikasi tanpa kemampuan yang sesuai yang ditetapkan dicegah untuk 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 yang dimulai klien keluar). Kemampuan untuk memberlakukan isolasi jaringan memastikan bahwa bahkan jika aplikasi menjadi 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 8 secara aktif memberlakukan isolasi jaringan. Panggilan ke metode atau akses apa pun ke properti di namespace Layanan Windows.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.
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
- sampel Wi-Fi Direct
- sampel layanan Wi-Fi Direct (Windows 10)
- Sampel soket aliran pemicu aktivitas soket