Bagikan melalui


Opsi Bluetooth dan Soket

Bluetooth untuk Windows mendukung opsi soket berikut. Opsi soket diatur dan dikueri menggunakan fungsi setsockopt dan getsockopt. Semua opsi berikut dapat digunakan dengan fungsi setsockopt, tetapi hanya opsi SO_BTH_MTU yang tersedia untuk digunakan dengan fungsi getsockopt.

Pengaturan berikut diperlukan untuk bekerja dengan opsi soket Bluetooth:

  • Parameter s harus berupa soket Bluetooth.
  • Parameter tingkat harus SOL_RFCOMM.

SO_BTH_AUTHENTICATE

Untuk soket yang terputus, SO_BTH_AUTHENTICATE menentukan bahwa autentikasi diperlukan agar operasi sambungkan atau terima berhasil diselesaikan. Mengatur opsi soket ini secara aktif memulai autentikasi selama pembentukan koneksi, jika dua perangkat Bluetooth sebelumnya tidak diautentikasi. Antarmuka pengguna untuk pertukaran kode akses, jika perlu, disediakan oleh sistem operasi di luar konteks aplikasi.

Untuk koneksi keluar yang memerlukan autentikasi, operasi sambungkan gagal dengan WSAEACCES jika autentikasi tidak berhasil. Sebagai respons, aplikasi dapat meminta pengguna untuk mengautentikasi dua perangkat Bluetooth sebelum koneksi.

Untuk koneksi masuk, koneksi ditolak jika autentikasi tidak dapat dibuat dan mengembalikan kesalahan WSAEHOSTDOWN . Untuk informasi selengkapnya tentang mengautentikasi perangkat Bluetooth, lihat BluetoothAuthenticateDevice.

Untuk opsi soket SO_BTH_AUTHENTICATE, optval adalah pointer ke ULONG bAuthenticate dan harus TRUE; optlen setara dengan "sizeof(ULONG)".

Windows XP dengan SP2: SO_BTH_AUTHENTICATE memulai autentikasi untuk soket yang terhubung, dan memaksa autentikasi pada koneksi untuk soket yang tidak terhubung. Untuk koneksi masuk, koneksi ditolak jika autentikasi tidak dapat dilakukan.

SO_BTH_ENCRYPT

Pada soket yang tidak terhubung, opsi soket SO_BTH_ENCRYPT memberlakukan enkripsi untuk membuat koneksi. Enkripsi hanya tersedia untuk koneksi terautentikasi. Untuk koneksi masuk, koneksi yang enkripsinya tidak dapat dibuat secara otomatis ditolak dan mengembalikan WSAEHOSTDOWN sebagai kesalahan. Untuk koneksi keluar, fungsi koneksi gagal dengan WSAEACCES jika enkripsi tidak dapat dibuat. Sebagai respons, aplikasi dapat meminta pengguna untuk mengautentikasi dua perangkat Bluetooth sebelum koneksi. Untuk informasi selengkapnya tentang mengautentikasi perangkat Bluetooth, lihat BluetoothAuthenticateDevice.

Untuk opsi soket SO_BTH_ENCRYPT, optval adalah pointer ke ULONG bEncrypt dan harus TRUE; optlen setara dengan sizeof(ULONG).

Windows XP dengan SP2: Untuk soket yang tersambung dan diautentikasi, SO_BTH_ENCRYPT memulai enkripsi.

SO_BTH_MTU

Opsi soket SO_BTH_MTU adalah opsi lanjutan yang digunakan terutama untuk validasi. Opsi SO_BTH_MTU mendapatkan atau mengatur RFCOMM MTU default (unit transmisi maksimum) untuk negosiasi koneksi ke nilai yang berbeda dari nilai default protokol RFCOMM.

Karena RFCOMM MTU dipengaruhi oleh MTU L2CAP yang mendasarinya, dan protokol dan minimum dan maksimum aplikasi, nilai default untuk SO_BTH_MTU hanya merupakan titik awal untuk negosiasi dengan rekan jarak jauh, dan MTU akhir yang dinegosiasikan kemungkinan akan bervariasi dari default. Mengatur nilai SO_BTH_MTU dapat berdampak negatif pada throughput, dan dengan demikian, modifikasi apa pun harus dilakukan dengan pengetahuan tentang protokol Bluetooth yang mendasar.

Opsi soket SO_BTH_MTU dapat dilakukan pada soket yang terhubung, tetapi tidak berpengaruh jika negosiasi telah selesai. Mengaturnya pada soket mendengarkan (server) tidak berpengaruh.

Jumlah data yang dapat dikirim atau diterima aplikasi dalam satu panggilan soket tidak terpengaruh oleh MTU; MTU hanya memengaruhi bagaimana paket segmen penyedia layanan Windows Sockets yang mendasar untuk transportasi. Baik MTU yang diusulkan dan MTU pada akhirnya dinegosiasikan harus antara RFCOMM_MIN_MTU dan RFCOMM_MAX_MTU, seperti yang didefinisikan dalam file header Ws2bth.h.

Untuk opsi soket SO_BTH_MTU, optval adalah penunjuk ke mtu ULONG; optlen setara dengan "sizeof(ULONG)".

SO_BTH_MTU_MAX

Opsi soket SO_BTH_MTU_MAX adalah opsi tingkat lanjut yang digunakan terutama untuk validasi. Opsi soket SO_BTH_MTU_MAX mengatur RFCOMM MTU maksimum (unit transmisi maksimum) untuk negosiasi koneksi. Koneksi dengan MTU RFCOMM yang sama dengan atau lebih besar dari nilai ini gagal selama sambungkan/proses terima. Saat mengatur opsi soket ini diizinkan untuk soket yang terhubung, itu tidak berpengaruh jika negosiasi telah selesai. Mengatur opsi soket ini pada soket mendengarkan menyebarluaskan nilai untuk semua koneksi masuk. Nilai MAX MTU harus antara RFCOMM_MIN_MTU dan RFCOMM_MAX_MTU, seperti yang didefinisikan dalam file header Ws2bth.h.

Untuk opsi soket SO_BTH_MTU_MAX, optval adalah penunjuk ke max_mtu ULONG; optlen setara dengan "sizeof(ULONG)".

SO_BTH_MTU_MIN

Opsi soket SO_BTH_MTU_MIN adalah opsi tingkat lanjut yang digunakan terutama untuk validasi. Opsi soket SO_BTH_MTU_MIN menetapkan RFCOMM MTU minimum (unit transmisi maksimum) untuk negosiasi koneksi. Koneksi dengan MTU RFCOMM yang lebih kecil dari nilai ini gagal selama sambungkan/proses terima. Saat mengatur opsi soket ini diizinkan untuk soket yang terhubung, itu tidak berpengaruh jika negosiasi telah selesai. Mengatur opsi soket ini pada soket mendengarkan menyebarluaskan nilai untuk semua koneksi masuk.

Hanya soket mendengarkan yang dapat merevisi MTU ke bawah, oleh karena itu jika nilai yang diusulkan oleh soket penghubung kurang dari nilai yang ditetapkan untuk SO_BTH_MTU_MIN pada soket mendengarkan, koneksi ditolak. MTU minimum harus antara RFCOMM_MIN_MTU dan RFCOMM_MAX_MTU, seperti yang didefinisikan dalam file header Ws2bth.h.

Untuk opsi soket SO_BTH_MTU_MIN, optval adalah penunjuk ke min_mtu ULONG; optlen setara dengan "sizeof(ULONG)".

Soket Windows

getsockopt

setsockopt

BluetoothAuthenticateDevice

Menghubungkan

Menerima