http://www.sf.org.cn/Article/symbiandev/200509/183.html
濡備綍瀵繪壘鍜岃繛鎺ュ埌榪滅▼璁懼
褰撲竴涓簲鐢ㄧ▼搴忚繛鎺ュ埌榪滅▼璁懼浠ヤ究搴旂敤鍏舵煇涓湇鍔℃椂錛屾垜浠渶瑕佸嚑涓楠わ細(xì)棣栧厛鐪嬬湅鏄惁鏈夋兂瑕佷笌涔嬮氫俊鐨勮澶囥傜劧鍚庡療鐪嬫墍闇瑕佺殑鏈嶅姟鏄惁鍙敤銆傛渶鍚庯紝搴旂敤紼嬪簭闇瑕佽繘琛岃繛鎺ワ紝鍙﹀鍙兘榪橀渶瑕佽繘琛屼簺瀹夊叏鎺柦
涓嬮潰鍑犱釜涓婚灝嗕緷嬈′粙緇嶇浉鍏蟲楠わ細(xì)
閫夋嫨榪滅▼璁懼鐨勬柟娉?/FONT>
濡備綍鏌ヨ榪滅▼璁懼
濡備綍鏌ヨ榪滅▼璁懼涓婄殑鏈嶅姟
濡備綍鍚岃繙紼嬭澶囪繛鎺ュ拰浼犺緭鏁版嵁
濡備綍鍦ㄥ榪炵殑濂楁帴瀛椾笂搴旂敤瀹夊叏鎺柦
閫夋嫨榪滅▼璁懼鐨勬柟娉?/FONT>
涓涓簲鐢ㄧ▼搴忚兘閫氳繃涓嬪垪鏂規(guī)硶鍐沖畾鍝釜榪滅▼璁懼鏄粬閫氫俊鐨勫璞★細(xì)
路 鍥哄畾鐨勮繛鎺?SPAN lang=EN-US>
路 瀹炵幇瀛樺偍鐨勯厤緗?SPAN lang=EN-US>
路 鐢辯敤鎴烽夋嫨
路 紼嬪簭鑷姩鍐沖畾
涓婇潰姣忎竴涓兘鍙兘鐢卞畠鍚堥傜殑鎯呭喌銆傚墠涓や釜鏂規(guī)硶涓紝榪滅璁懼鐨勫湴鍧鍙渶瑕佺畝鍗曠殑浠庡瓨鍌ㄥ嚭鍙栧嚭銆傝岀涓夌鏂規(guī)硶鍒欐櫘閬嶅湪钃濈墮UI涓彁渚涖?SPAN lang=EN-US>
鏈鍚庝竴縐嶇▼搴忚嚜鍔ㄩ夋嫨榪滅▼璁懼涓紝鍙兘鍦ㄤ笅鍒楁儏鍐典腑搴旂敤錛?SPAN lang=EN-US>
路 涓虹敤鎴鋒彁渚涘彲瀹氬埗鐨勮澶囬夋嫨UI
路 鍦ㄦ煇浜涚壒鍒儏鍐典笅閫夋嫨璁懼錛屾瘮濡傗滈夋嫨鏈絀洪棽鐨?SPAN lang=EN-US>LAN鎺ュ叆鐐光?SPAN lang=EN-US>
濡備綍鏌ヨ榪滅▼璁懼
姣忎釜钃濈墮璁懼鍦ㄥ叾紜歡涓兘鏈夊敮涓鐨?SPAN lang=EN-US>48浣嶅湴鍧銆備竴涓寖鍥村唴鍩烘湰鐨勮澶囨煡璇㈠皢榪斿洖闆舵垨鍑犱釜姝ょ被鍦板潃銆?SPAN lang=EN-US>
闄や簡榪欎釜鍦板潃錛岃摑鐗欒澶囦篃榪樻湁涓涓枃鏈悕瀛楁樉紺虹粰鐢ㄦ埛銆傚鏋滀綘甯屾湜鏄劇ず鍙敤璁懼鐨勫垪琛ㄧ粰鐢ㄦ埛錛屼綘涔熻鑾峰彇榪欎簺鍚嶅瓧浠ヤ究鏄劇ず銆?SPAN lang=EN-US>
濡傛灉搴曞眰紜歡鏀寔錛屽湴鍧鍜屽悕瀛椾篃鍙互鍚屾椂琚煡璇€傚惁鍒欙紝鍦板潃鐨勬煡璇㈠繀欏誨湪鍚嶅瓧鏌ヨ璇鋒眰鍙戦佸墠瀹屾垚
娉涘寲濂楁帴瀛楃被RhostResolver鐢ㄦ潵瀹屾垚鍦板潃鍜岃澶囧悕鐨勬煡璇€傚彟澶?SPAN lang=EN-US>TinquirySockAddr涓轟笓闂ㄧ殑钃濈墮濂楁帴瀛楀湴鍧綾伙紝閲岄潰灝佽浜嗚摑鐗欏湴鍧錛屾煡璇㈠叆鍙d唬鐮侊紝鐢ㄦ潵鎻愪緵鐩稿叧鏌ヨ鐨勬湇鍔″拰璁懼綾匯?SPAN lang=EN-US>
鑾峰緱榪滅▼璁懼鐨勫湴鍧
涓嬮潰姝ラ鐢ㄦ潵鏌ヨ榪滅▼璁懼鐨勫湴鍧錛?SPAN lang=EN-US>
1. 榪炴帴鍒板鎺ュ瓧鏈嶅姟鍣?SPAN lang=EN-US>(RSocketServ)錛岀劧鍚庣敤RSocketServ::FindProtocol()閫夋嫨浣跨敤鐨勫崗璁傜敱浜庡悕瀛楀拰鍦板潃鐨勬煡璇㈢敱鍫嗘爤鐨?SPAN lang=EN-US>BTLinkManager鍗忚灞傛敮鎸侊紝鎵浠ラ夋嫨瀹冦?SPAN lang=EN-US>
2. 鍒涘緩騫跺垵濮嬪寲涓涓?SPAN lang=EN-US>RhostResolver瀵硅薄銆?SPAN lang=EN-US>
3. 璁劇疆TinquirySockAddr鍙傛暟浠ヤ究鏌ヨ錛氬浜庡湴鍧鏌ヨ錛?SPAN lang=EN-US> KHostResInquiry鏍囧織闇瑕侀氳繃TInquirySockAddr::SetAction()璁劇疆濂姐?SPAN lang=EN-US>
鐒跺悗鍙互閫氳繃RHostResolver::GetByAddress()寮濮嬫煡璇€?SPAN lang=EN-US>
濡備綍鏌ヨ榪滅▼璁懼鐨勬湇鍔?/FONT>
涓涓繙紼嬭澶囧彲浠ユ湁涓涓垨鑰呭涓摑鐗欐湇鍔℃彁渚涜呫傛湇鍔$殑騫挎硾鎸囩ず鍣ㄥ彲浠ヤ粠璁懼鐨勭被涓鍑恒傝繖鏍峰彲浠ョ敤鏉ラ夋嫨鍚堥傜殑璁懼鍥炬爣鐜板疄緇欑敤鎴楓傝繖涓澶囩殑綾誨彲浠ュ湪鏌ヨ鍦板潃鍚庣敤TInquirySockAddr::MajorClassOfDevice()鑾峰緱銆?SPAN lang=EN-US>
鍦ㄧ壒瀹氱幆澧冿紝璁懼鐨勭被鎻愪緵鐨勭矖綰у埆鐨勬湇鍔″彂鐜板茍涓嶈兘婊¤凍瀵硅澶囩殑閫夋嫨鏉′歡銆傝繖鏍鳳紝榪欐牱錛屾湇鍔″彂鐜拌姹傚彲浠ョ敤鏉ュ垽鏂槸鍚︿負(fù)閫傚悎鐨勯夋嫨銆備絾鍙湁鍦ㄥ繀闇鐨勬椂鍚庢墠搴旇搴旂敤錛屽洜涓哄畠闇瑕佷竴浜涢澶栨椂闂存潵瀵規(guī)瘡涓澶囪繘琛?SPAN lang=EN-US>SDP璇鋒眰銆?SPAN lang=EN-US>SDP璇鋒眰閫氳繃钃濈墮鍙戠幇浠g悊API鏉ヨ繘琛屻?SPAN lang=EN-US>
濡備綍鍚岃繙紼嬭澶囪繛鎺ュ拰浼犺緭鏁版嵁
涓鏃﹁澶囧拰鏈嶅姟紜畾浜嗭紝浣犲氨鑳藉榪炴帴鍒拌繙紼嬭澶囧茍寮濮嬩嬌鐢ㄤ簡
閫氳繃娉涘寲鐨?SPAN lang=EN-US>Symbian OS濂楁帴瀛楀熷彛Rsocket鐨?SPAN lang=EN-US>Connect()鍑芥暟榪炴帴鍒拌澶囥傝摑鐗欏鎺ュ瓧鍙互鐢?SPAN lang=EN-US>L2CAP鍜?SPAN lang=EN-US>RFCOMM鍗忚鎵撳紑銆傚浜庝竴涓?SPAN lang=EN-US>L2CAP钃濈墮濂楁帴瀛楋紝绔彛錛?SPAN lang=EN-US>port錛夋槸鐢ㄦ潵榪炴帴鐨勫崗璁?SPAN lang=EN-US>/鏈嶅姟澶氳礬澶嶇敤鍣?SPAN lang=EN-US> (PSM)錛涘浜?SPAN lang=EN-US>RFCOMM,绔彛鏄湇鍔″櫒棰戦亾銆傚鏋滆繖浜涘間笉鐭ラ亾錛屽彲浠ラ氳繃璇誨彇鏈嶅姟灞炴?SPAN lang=EN-US>ProtocolDescriptorList鏉ヨ幏寰椼傝鎯呭弬瑙佷嬌鐢ㄨ摑鐗欐湇鍔″彂鐜頒唬鐞?SPAN lang=EN-US>
浣犺兘澶熼氳繃濂楁帴瀛椾嬌鐢ㄧ洰鏍囨湇鍔℃湡鏈涚殑鏍煎紡璇誨啓鏁版嵁錛?SPAN lang=EN-US>AT鎸囦護(hù)錛屾枃鏈紝HTTP錛?SPAN lang=EN-US>PPP絳夛級
涓句緥錛?/FONT>
// Assume have a TInquirySockAddr object, addr, with relevant device info
// Connect an L2CAP socket
RSocket socket;
TRequestStatus status;
User::LeaveIfError(socket.Open(socketServ,KBTAddrFamily,KSockSeqPacket,KL2CAP));
User::LeaveIfError(socket.Connect(addr,status));
User::WaitForRequest(status);
if (status == KErrNone)
{
// Write some simple data
_LIT8(KDataToWrite,"01234");
socket.Write(KDataToWrite,status);
User::WaitForRequest(status);
}
// Close socket
socket.Close();
娉ㄦ剰錛?/FONT>
路 瀵逛簬RFCOMM鍜?SPAN lang=EN-US>L2CAP鍗忚錛屾病鏈夋暟鎹彲浠ュ湪Connect() 鍜?SPAN lang=EN-US>Shutdown() 璋冪敤涓佸嚭錛屽惁鍒欎細(xì)瀵艱嚧鑾峰緱棰濆鏁版嵁鐨勯敊璇?SPAN lang=EN-US>
路 RFCOMM浣跨敤嫻佸鎺ュ瓧綾誨瀷錛?SPAN lang=EN-US>KSockStream錛夈?SPAN lang=EN-US>
路 L2CAP浣跨敤搴忓垪鍖呯殑濂楁帴瀛楃被鍨?錛?SPAN lang=EN-US>KsockSeqPacket錛夈?SPAN lang=EN-US>
濡備綍鍦ㄥ榪炵殑濂楁帴瀛椾笂搴旂敤瀹夊叏鎺柦
瀵逛簬涓涓榪炴帴錛?SPAN lang=EN-US>outgoing connection錛夛紝榛樿鎯呭喌涓嬭摑鐗欏爢鏍堜笉浼?xì)鐢卞叿浣撶殑瀹夊叏鎺柦銆傚鏋滆繙紼嬭澶囬渶瑕佽璇佹垨緙栫爜榪炴帴錛岄偅鍫嗘爤浼?xì)鐩存帴浣撶幇鍒板簲鐢ńE嬪簭銆?SPAN lang=EN-US>
鏈夋椂鍊欙紝鏈湴紼嬪簭涔熼渶瑕佷繚璇佽璇佹垨緙栫爜榪炴帴銆傚彲浠ュRSocket鐢ㄦ帶鍒舵搷浣滐紙ioctls錛夋潵璁よ瘉(ioctl KHCIAuthRequestIoctl) 鎴栬呯紪鐮?SPAN lang=EN-US> (KHCIEncryptIoctl) 榪炴帴銆?SPAN lang=EN-US>
涓句緥
涓嬮潰鐨勪緥瀛愬氨灝嗗璁よ瘉璇鋒眰搴旂敤浜?SPAN lang=EN-US>ioctl
// Assume have an opened L2CAP RSocket object, socket
socket.Ioctl(KHCIAuthRequestIoctl, status, NULL, KSolBtHCI);
User::WaitForRequest(status);
if (status==KErrNone)
{
\\ Success...
ps: 鍋朵篃鍦ㄥ涔?fàn)涓Q屽鏈夐敊璇澶氭寚鏁欍?SPAN lang=EN-US>

]]>