這是一個精練的藍牙客戶端類,類名、函數名和變量名均采用匈牙利命名法。小寫的x代表我的姓氏首字母(謝欣能),個人習慣而已,如有雷同,純屬巧合。
CxBlueToothClient的定義如下:
XIOCTRL_CLASS CxBlueToothClient : ~
由於這個類被封裝在動態庫裡面,所以類名前使用了導出標志XIOCTRL_CLASS,讀者在使用時完全可以去掉。這個類的定義被放在一個包含很多類定義的頭文件中,我沒有單獨為它寫頭文件,所以它的定義部分代碼看上去沒有上下文(比如頭文件包含、宏定義等等)。
CxBlueToothClient的實現如下:
AF_BTH 32 BTHPROTO_RFCOMM 0x0003 * pack(1)* pack()~= (m_socket === {=& (lpguidService !== *= iResult = connect(m_socket, ( sockaddr*)&sa_bth, (iResult == lEvent = FD_WRITE | (m_wndproc ==|== { nLen = iResult = getpeername(m_socket, (SOCKADDR*)&sa_bth, & (iResult !=
注意,宏定義AF_BTH和BTHPROTO_RFCOMM,還有結構體定義SOCKADDR_BTH。如果新的WIN32 SDK包含這些定義,那麼讀者在使用時完全可以去掉。
這個類的實現被放在一個包含很多類實現的CPP文件中,我沒有單獨為它寫CPP文件,所以它的實現部分代碼看上去沒有上下文(比如頭文件包含、宏定義等等)。這個類的實現部分的代碼不多,總共60多行,實現了連接藍牙服務端的功能。由於該類繼承於客戶端套接字類CxClientSocket,自然就能享用其父類的各項功能(比如發送接收數據以及偵聽接收緩存區數據等等)。
精練的代碼不需要過多解釋,你們懂的。To be continued...