藍牙會使用 連線 函式,使用先前建立的藍牙套接字聯機到目標藍牙裝置。 connect 函式 名稱 參數,這是 SOCKADDR_BTH 結構,必須指定目標藍牙裝置。 兩種機制可用來識別目標裝置:
- SOCKADDR_BTH 結構可以直接指定要求連接的埠號碼。 此機制需要應用程式先執行自己的 SDP 查詢,再嘗試 連線 作業。
- SOCKADDR_BTH 結構可以指定它想要連線之服務的唯一服務類別標識碼。 如果對等裝置有多個對應至服務類別標識符的埠,則 連線 函式呼叫會連線到第一個有效的服務。 此機制可在沒有先前的 SDP 查詢的情況下使用。
搭配 connect 函式使用 SOCKADDR_BTH 結構時,適用下列需求:
- btAddr 成員必須是有效的遠端無線電位址。
- 針對 serviceClassId 成員,如果埠成員為零,系統會嘗試使用 serviceClassId 解析對應至服務的遠端埠。 服務類別是藍牙規格所定義的標準化 128 位 GUID。 常見的 GUID 是由藍牙指派的數位檔所定義。 或者,唯一的 GUID 可用於網域特定的應用程式。
- 埠 成員必須是有效的遠端埠,如果指定 serviceClassId 成員,則為零。
下表列出藍牙和 連線 函式的結果碼。
| 錯誤/錯誤# | 描述 |
|---|---|
| WSAEISCONN10056 |
connect 函式,針對已連線的套接字呼叫。 |
| WSAEACCES10013 |
線上應用程式要求驗證,但驗證失敗。 |
| WSAENOBUFS10055 |
無法復原的記憶體不足錯誤。 |
| WSAEADDRINUSE10048 |
要求的埠/通道號碼正在使用中。 |
| WSAETIMEDOUT10060 |
I/O 在藍牙無線電層級逾時(PAGE_TIMEOUT)。 |
| WSAEDISCON10101 |
由遠端對等連線的 RFCOMM 通道。 |
| WSAECONNRESET10054 |
遠端對等已中斷連線的 RFCOMM 多任務器(會話)。 |
| WSAECONNABORTED10053 |
由應用程式關閉套接字。 |
| WSAENETUNREACH10051 |
L2CAP 或藍牙無線電層級逾時以外的錯誤。 |
| WSAEHOSTDOWN10064 |
RFCOMM 收到 DM 回應。 |
| WSAENETDOWN10050 |
未預期的網路錯誤。 |
| WSAESHUTDOWN10058 |
遠端對等中斷連線的 L2CAP 通道。 |
| WSAEADDRNOTAVAIL10049 |
藍牙埠/通道或裝置位址無效。 |
| WSAEINVAL10022 |
即插即用、驅動程式堆疊事件或其他錯誤導致失敗。 |