藍牙 並連線
藍牙 使用使用先前建立的 藍牙 套接字,連線函式以連線到目標 藍牙 裝置。 connect 函式的名稱參數,這是SOCKADDR_BTH結構,必須指定目標 藍牙 裝置。 兩種機制可用來識別目標裝置:
- SOCKADDR_BTH結構可以直接指定要求連接的埠號碼。 此機制需要應用程式在嘗試 連線 作業之前,先執行自己的 SDP 查詢。
- SOCKADDR_BTH 結構可以指定它想要連線之服務的唯一服務類別標識碼。 如果對等裝置有多個對應至服務類別標識符的埠, 則 connect 函式呼叫會連線到第一個有效的服務。 此機制可在沒有先前的 SDP 查詢的情況下使用。
搭配 connect 函式使用 SOCKADDR_BTH 結構時,適用下列需求:
- btAddr 成員必須是有效的遠端無線電位址。
- 針對 serviceClassId 成員,如果埠成員為零,系統會嘗試使用 serviceClassId 解析對應至服務的遠端埠。 服務類別是標準化的 128 位 GUID,由 藍牙 規格定義。 常見的 GUID 是由 藍牙 指派的數位檔所定義。 或者,唯一的 GUID 可用於網域特定的應用程式。
- 埠成員必須是有效的遠端埠,如果指定 serviceClassId 成員,則為零。
下表列出 藍牙 和 connect 函式的結果碼。
錯誤/錯誤# | 描述 |
---|---|
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 |
隨插即用、驅動程式堆疊事件或其他錯誤導致失敗。 |