藍牙和連線
藍牙會使用 連線 函式,使用先前建立的藍牙套接字聯機到目標藍牙裝置。 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 |
即插即用、驅動程式堆疊事件或其他錯誤導致失敗。 |