Windows.Networking.Sockets Ruang nama

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.

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