£¨L2CAPÐÒé¼ò½é£¬L2CAPÔÚBlueZÖеÄʵÏÖÒÔ¼°L2CAP±à³Ì½Ó¿Ú£©
Ò»£ºL2CAPÐÒé¼ò½é£º
Logical Link Control and Adaptation Protocol(L2CAP)
Âß¼Á¬½Ó¿ØÖƺÍÊÊÅäÐÒé (L2CAP) ΪÉϲãÐÒéÌá¹©ÃæÏòÁ¬½ÓºÍÎÞÁ¬½ÓµÄÊý¾Ý·þÎñ£¬²¢Ìṩ¶àÐÒ鹦ÄܺͷָîÖØ×é²Ù×÷¡£L2CAP ³äÐíÉϲãÐÒéºÍÓ¦ÓÃÈí¼þ´«ÊäºÍ½ÓÊÕ×î´ó³¤¶ÈΪ 64K µÄ L2CAP Êý¾Ý°ü¡£
¡¡¡¡L2CAP »ùÓÚ Í¨µÀ(channel) µÄ¸ÅÄî¡£ ͨµÀ (Channel) ÊÇλÓÚ»ù´ø (baseband) Á¬½ÓÖ®ÉϵÄÂß¼Á¬½Ó¡£Ã¿¸öͨµÀÒÔ¶à¶ÔÒ»µÄ·½Ê½°ó¶¨Ò»¸öµ¥Ò»ÐÒé (single protocol)¡£¶à¸öͨµÀ¿ÉÒÔ°ó¶¨Í¬Ò»¸öÐÒ飬µ«Ò»¸öͨµÀ²»¿ÉÒ԰󶨶à¸öÐÒé¡£ ÿ¸öÔÚͨµÀÀï½ÓÊÕµ½µÄ L2CAP Êý¾Ý°ü±»´«µ½ÏàÓ¦µÄÉϲãÐÒé¡£ ¶à¸öͨµÀ¿É¹²Ïíͬһ¸ö»ù´øÁ¬½Ó¡£
L2CAP´¦ÓÚBluetoothÐÒéÕ»µÄλÖÃÈçÏ£º
Ò²¾ÍÊÇ˵£¬ËùÓÐL2CAPÊý¾Ý¾ùͨ¹ýHCI´«Êäµ½Remote Device¡£ÇÒÉϲãÐÒéµÄÊý¾Ý£¬´ó¶¼Ò²Í¨¹ýL2CAPÀ´´«ËÍ¡£
L2CAP¿ÉÒÔ·¢ËÍCommand¡£ÀýÈçÁ¬½Ó£¬¶ÏÁ¬µÈµÈ¡£
ÏÂÃæ¿´CommandÀý×Ó£ºConnection Request:
ÆäÖÐPSM±È½ÏÐèҪעÒ⣬L2CAP ʹÓÃL2CAPÁ¬½ÓÇëÇó£¨Connection Request £©ÃüÁîÖеÄPSM×Ö¶ÎʵÏÖÐÒ鸴Óá£L2CAP¿ÉÒÔ¸´Ó÷¢¸øÉϲãÐÒéµÄÁ¬½ÓÇëÇó£¬ÕâЩÉϲãÐÒé°üÀ¨·þÎñ·¢ÏÖÐÒéSDP£¨PSM = 0 ......
ÀýÒ»£º·¢ËÍSignaling Packet£º
Signaling CommandÊÇ2¸öBluetoothʵÌåÖ®¼äµÄL2CAP²ãÃüÁî´«Êä¡£ËùÒÔµÃSignaling CommandʹÓÃCID 0x0001.
¶à¸öCommand¿ÉÒÔÔÚÒ»¸öC-frame£¨control frame£©Öз¢ËÍ¡£
Èç¹ûÒªÖ±½Ó·¢ËÍSignaling Command.ÐèÒª½¨Á¢SOCK_RAWÀàÐ͵ÄL2CAPÁ¬½ÓSocket¡£ÕâÑù²ÅÓлú»á×Ô¼ºÌî³äCommand Code£¬IdentifierµÈ¡£
ÒÔÏÂÊÇÒ»¸ö·¢ËÍsignaling CommandÒÔ¼°½ÓÊÕResponseµÄ¼òµ¥Àý×Ó£º
int main(int argc, char** argv)
{
int l2_sck = 0;
int iRel = 0;
struct sockaddr_l2 local_l2_addr;
struct sockaddr_l2 remote_l2_addr;
char str[24] ={0};
int len = 0;
int size = 50;
char* send_buf;
char* recv_buf;
int i = 0;
int id = 1; //²»ÒªÎª0
send_buf = malloc(L2CAP_CMD_HDR_SIZE + size);
recv_buf = malloc(L2CAP_CMD_HDR_SIZE + size);
if(argc < 2)
{
printf("\n%s <bdaddr>\n", argv[0]);
exit(0);
}
// create l2cap raw socket
l2_sck = socket(PF_ ......
Service Discovery Protocol(SDP)ÌṩһÖÖÄÜÁ¦£¬ÈÃÓ¦ÓóÌÐòÓз½·¨·¢ÏÖÄÄÖÖ·þÎñ¿ÉÓÃÒÔ¼°ÕâÖÖ·þÎñµÄÌØÐÔ¡£
·þÎñ·¢ÏÖÐÒé(SDP»òBluetooth SDP)ÔÚÀ¶ÑÀÐÒéÕ»ÖжÔÀ¶ÑÀ»·¾³ÖеÄÓ¦ÓóÌÐòÓÐÌØÊâµÄº¬Ò⣬·¢ÏÖÄĸö·þÎñÊÇ¿ÉÓõĺÍÈ·¶¨ÕâЩ¿ÉÓ÷þÎñµÄÌØÕ÷¡£SDP¶¨ÒåÁËbluetooth client·¢ÏÖ¿ÉÓÃbluetooth server·þÎñºÍËüÃǵÄÌØÕ÷µÄ·½·¨¡£Õâ¸öÐÒ鶨ÒåÁ˿ͻ§ÈçºÎÄܹ»Ñ°ÕÒ»ùÓÚÌØ¶¨ÊôÐԵķþÎñ¶ø²»Èÿͻ§ÖªµÀ¿ÉÓ÷þÎñµÄÈκÎ֪ʶ¡£SDPÌṩ·¢ÏÖзþÎñµÄ·½·¨£¬ÔÚµ±¿Í»§µÇ¼µ½ÕýÔÚ²Ù×÷µÄÀ¶ÑÀ·þÎñÆ÷µÄÒ»¸öÇøÓòʱÊÇ¿ÉÓõÄʱ¡£
Service discovery»úÖÆÌṩclientÓ¦ÓóÌÐòÕì²âserverÓ¦ÓóÌÐòÌṩµÄ·þÎñµÄÄÜÁ¦£¬²¢ÇÒÄܹ»µÃµ½·þÎñµÄÌØÐÔ¡£·þÎñµÄÆ·Öʰüº¬·þÎñtype»ò·þÎñclass.
SDPÒ²ÌṩSDP serverÓëSDP clientÖ®¼äµÄͨѶ¡£SDP serverά»¤×ÅÒ»¸ö·þÎñÌõÄ¿(service record)Áбí.ÿ¸ö·þÎñÌõÄ¿ÃèÊöÒ»¸öµ¥¶ÀµÄ·þÎñÊôÐÔ¡£ SDP client¿ÉÒÔͨ¹ý·¢ËÍSDP requestÀ´µÃµ½·þÎñÌõÄ¿¡£
Èç¹ûÒ»¸öclient»òÕßÒÀ¸½ÓÚclientÖ®ÉϵÄÓ¦ÓóÌÐò¾ö¶¨Ê¹ÓÃij¸öservice. Ëü´´½¨Ò»¸öµ¥¶ÀµÄÁ¬½Óµ½serviceÌṩÕß¡£ SDP Ö»ÌṩÕì²âServiceµÄ»úÖÆ£¬µ«²»ÌṩÈçºÎÀûÓÃÕâЩServiceµÄ»úÖÆ¡£Sam¾õµÃ£¬ÕâÀïÆäʵÊÇ˵£ºSDPÖ»ÌṩÕì²âServiceµÄ°ì·¨£¬ ......
Ŀǰ£¬Linux×÷ΪǶÈëʽϵͳµÄÖ÷Á¦¾ü£¬¹ã·ºÓ¦ÓÃÓÚÏû·ÑÀàµç×Ó¡¢¹¤Òµ¿ØÖÆ¡¢¾ü¹¤µç×Ó¡¢µçÐÅ/ÍøÂç/ͨѶ¡¢º½¿Õº½Ìì¡¢Æû³µµç×Ó¡¢Ò½ÁÆÉ豸¡¢ÒÇÆ÷ÒDZíµÈÏà¹ØÐÐÒµ¡£Ëæ×ÅǶÈëʽÐÐÒµµÄѸÃÍ·¢Õ¹£¬Ç¶ÈëʽLinuxƾ½èÆäϵͳ·¢Õ¹µÄ³ÉÊì¶È¡¢Êг¡Ó¦Óõĸ߷ݶîÒ²Êܵ½¸ü¶à¹¤³ÌʦÅóÓѵÄÇàíù£¬Ô½À´Ô½¶àµÄÆóÒµºÍÑз¢»ú¹¹¶¼×ªÏòǶÈëʽLinuxµÄ¿ª·¢ºÍÑо¿£¬ÕâʹµÃǶÈëʽLinuxÔÚÐÂÐ˵ÄǶÈëʽ²Ù×÷ϵͳÁìÓòÄÚÒ²»ñµÃÁË·ÉËÙ·¢Õ¹ºÍ¹ã·ºÓ¦Ó᣶ø¶ÔÓÚÄÇЩϣÍû¾¡¿ì½øÈëǶÈëʽÐÐÒµ´ÓʲúÆ·Ñз¢µÄÅóÓÑÃÇ£¬Ñ¡ÔñǶÈëʽLinux·½Ïò×÷ΪÇÐÈëµãÎÞÒÉÊÇ×îºÃµÄ;¾¶Ö®Ò»¡£
½üÆÚ£¬ÓÐÐí¶àÃæÁÙ±ÏÒµ¡¢ÕÒ¹¤×÷µÄ´óѧÉúÀ´µ½RE.ERǶÈëʽѧԺÐÄ×ÉѯÁ˽âÓйØÇ¶ÈëʽLinux·½ÏòµÄѧϰ°²ÅÅ¡£ÔÚÓëËûÃǽ»Á÷¹µÍ¨µÄ¹ý³ÌÖУ¬±»Îʵ½×î¶àµÄ¼¸¸öÎÊÌâ¾ÍÊÇ“ÈçºÎ×öºÃǶÈëʽLinuxѧϰǰµÄ×¼±¸£¿”£¬“ѧϰǶÈëʽLinuxÐèÒª²¹Ï°ÄÄЩ»ù´¡¿Î³Ì£¿”£¬“ǶÈëʽLinux¿ª·¢¸úÆÕͨÈí¼þ¿ª·¢ÔÚѧϰ·½·¨ÉÏÓÐʲô²»Í¬£¿”£¬“ÏîĿʵս»·½Ú¶àÂ𣿔£¬“ÓÐרҵÈËÔ±´øÁìÂ𣿔£¬ÏàÐÅÕâЩҲÊǺܶà×¼±¸ÈëÐеijõѧÕß¶¼»á¹ØÐĵÄÎÊÌ⣬ΪÁ˰ïÖú´ó¼Ò×öºÃǶÈëʽLinuxµÄѧǰ׼±¸£¬ÎÒÃǶÔÕâЩ³£¼ûµÄÎÊÌâÖðÒ»½øÐнâ´ð£¬Ìṩ¸ø´ó¼Ò² ......
°´: ¾¡¹ÜÎÒÃÇÒѾ²»Ï°¹ß¿´³¤Æª´óÂÛ, µ«ÎÒ»¹ÊÇҪ˵, ÕâÊÇһƪֵµÃÄã´ÓÍ·¶Áµ½Î²µÄ³¤ÆªÎÄÕÂ.
2005Äê9ÔÂ22ÈÕ£¬Ç廪ÔÚ¶Á²©Ê¿ÉúÍõÛóÔÚˮľÉçÇøBLOGÉÏ·¢±íÁË¡¶Ç廪ÃεķÛËé--д¸øÇ廪´óѧµÄÍËѧÉêÇë¡·Ã÷È·ÒªÇóÍËѧ, ÒýÆðÉç»á¸÷½ç¹ã·ºÕùÂÛ. Ëû´´×÷µÄ³¤ÆªÎÄÕ¡¶ÍêÈ«ÓÃLinux¹¤×÷¡·, ÑóÑóÁ½Íò¶à×Ö, ´Ó²»Í¬½Ç¶È¾Ó¸ßÁÙϵIJûÊöÁËËûÑÛÖÐLinuxÍêÈ«ÓÅÔ½ÓÚWindowsµÄ¸÷ÖÖÀíÓÉ, ÕâÆªÎÄÕ²¢²»¼òµ¥µÄÊÇһƪÂÛÊö"WindowsÄÜ×öµÄÊÂLinux¶¼ÄÜ×ö"ÕâÑùµÄÎÄÕÂ, ͨƪÑóÒç×ÅÒ»¸ö³¹µ×ÅúÅÐ Windows ƽ̨»ù´¡µÄ¼ÆËã»úÕÜѧ, ¼ÆËã»úÓ¦ÓúͼÆËã»ú½ÌÓýÌåϵµÄÈ˵ÄÍòÕɺÀÇé, ¾¡¹Ü¿ÉÄÜÆ«¼¤, Ò²²»·¦ÏêϸµÄÍÆÀíÂÛÊö. ½ñÌìÎÒÃÇÖØÎ±¾ÎÄ, Ò»·½ÃæÒ²ÊÇÒòΪCBÉÏϲ°®ºÍÍÆ¹ãLinuxµÄÈËÊ¿ºÜ¶à, ÓÐʱҲ»á±¬·¢Ð¡¹æÄ£ÂÛÕ½, ÎÒÃÇÏ£ÍûÄÜͨ¹ý¶Ô±¾ÎĵÄÑо¿ÓëÌÖÂÛ, À´¿ú²â¹úÄÚ²¿·ÖLinuxÍÆ¹ãÕßµÄÐÄ̬, ͬʱΪ´ó¼ÒÌṩ¸ü¿í¹ãµÄÌÖÂÛ¿Õ¼ä.
ÎÒÒѾ°ëÄêûÓÐʹÓà Windows µÄ·½Ê½¹¤×÷ÁË¡£Linux ¸ßЧµÄÍê³ÉÁËÎÒËùÓеŤ×÷¡£
GNU/Linux ²»ÊÇÿ¸öÈ˶¼ÏëÓõġ£Èç¹ûÄãÖ»ÐèÒª´¦ÀíÒ»°ãµÄÊÂÎñ£¬´òÓÎÏ·£¬ÄÇôÄã²»ÐèÒªÁ˽âÏÂÃæÕâЩÁË¡£
ÎÒ²»ÊÇÒ»¸ö¿ñÈȵÄ×ÔÓÉÈí¼þ·Ý×Ó£¬ËäÈ»ÎÒºÜϲ»¶×ÔÓÉÈí¼þ¡£ÕâÆªÎÄÕÂÒ²²»ÊÇÓÃÀ´ÍÆÐÐ×ÔÓÉÈí¼þÔ˶¯µÄ£¬ËäÈ»ÎÒ¾õµÃ×ÔÓÉÈí¼þÔË ......
¸Õ¿ªÊ¼½Ó´¥Linux,ÄÇô¶àµÄ°æ±¾,Õæ²»ÖªµÀ¸ÃÓÃʲôÑùµÄºÃ.¿´ÁËÍøÉÏµÄÆÀÂÛ,¶¼ËµUbuntnºÃ.ÏÂÁËÒ»¸ö,ÔÚÐéÄâ»úÉÏ×°Á˼¸±é.·¢ÏÖµÚÒ»´Î°²×°µÄʱºòºÜ¿ì,ÒÔºó¾Í×Ü¿¨ÔÚAptÅäÖÃÄÇ,²»ÖªµÀÊÇΪʲô.
ºóÀ´,·¢ÏÖºìÆìLinux.µ«ÍøÉÏµÄÆÀÂÛ¸÷Òì,²»¹ýÎÒ»¹ÊÇÑ¡ÔñÁ˺ìÆì.û±ðµÄÔÒò,¾ÍÒòΪËýÊÇÖйúµÄ.
¶ÔÓÚûÓÐÒ»µãLINUX¾ÑéµÄ³õѧÕß,±¾ÈËÈÏΪ»¹ÊÇÏÈ´Ó×ÀÃæ°æµÄºÃ.¼òµ¥Á˽âÒ»ÏÂLINUX,°Ù¶ÈÒ»ÏÂ,Ò»´ó¶Ñ!
ÏÖÔÚºìÆìÒѾ·¢Õ¹µ½ÁË7.0,¾Ý˵Õâ¸ö°æ±¾¿ÉÒÔºÍ Ubuntn8 ÏàÆ´Ò»ÏÂ.Æäʵ LINUX µÄ¹¤×÷ÔÀí¶¼²î²»¶à,Ö»²»¹ýÓÐÉÙÁ¿Ð©ÃüÁî¿ÉÄÜ»áÓв»Í¬.µ«´óÌå²»»áÓ°Ïìʲô,
¶ÔÓÚ³õѧÕß¿ÉÒÔ×îºÃÏÈ¿´Ò»ÏºìÆìLINUX6.0µÄʹÓÃÊÖ²á:
ÏÂÔØµØÖ·: http://www.redflag-linux.com/d/doc/372.html ......