ÔÚlinuxÏ »ñÈ¡£¬Ð޸ı¾»úIPµØÖ·µÄÁ½¸öº¯Êý
	
    
    
	//»ñÈ¡±¾»úIPµØÖ·º¯Êý
QString GetLocalIp()
{
    int sock_get_ip;
    char ipaddr[50];
    struct   sockaddr_in *sin;
    struct   ifreq ifr_ip;   
    if ((sock_get_ip=socket(AF_INET, SOCK_STREAM, 0)) == -1)
    {
         printf("socket create failse...GetLocalIp!\n");
         return "";
    }
   
    memset(&ifr_ip, 0, sizeof(ifr_ip));   
    strncpy(ifr_ip.ifr_name, "eth0", sizeof(ifr_ip.ifr_name) - 1);   
 
    if( ioctl( sock_get_ip, SIOCGIFADDR, &ifr_ip) < 0 )   
    {   
         return "";   
    }     
    sin = (struct sockaddr_in *)&ifr_ip.ifr_addr;   
    strcpy(ipaddr,inet_ntoa(sin->sin_addr));       
    
    printf("local ip:%s \n",ipaddr);    
    close( sock_get_ip );
    
    return QString( ipaddr );
}
  
//Ð޸ı¾»úIPµØÖ·µÄº¯Êý
int SetLocalIp( const char *ipaddr )
{
    int sock_set_ip;
    
    struct sockaddr_in sin_set_ip;
    struct ifreq ifr_set_ip;
    bzero( &ifr_set_ip,sizeof(ifr_set_ip));
 
    if( ipaddr == NULL )
        return -1;
    if(sock_set_ip = socket( AF_INET, SOCK_STREAM, 0 ) == -1);
    {
        perror("socket create failse...SetLocalIp!\n");
        return -1;
    }
 
    memset( &sin_set_ip, 0, sizeof(sin_set_ip));
    strncpy(ifr_set_ip.ifr_name, "eth0", sizeof(ifr_set_ip.ifr_name)-1);   
    
    sin_set_ip.sin_family = AF_INET;
    sin_set_ip.sin_addr.s_addr = inet_addr(ipaddr);
    memcpy( &ifr_set_ip.ifr_addr, &sin_set_ip, sizeof(sin_set_ip));
    if( ioctl( sock_set_ip, SIOCSIFADDR, &ifr_set_ip) < 0 )
    {
        perror( "Not setup interface\n");
        return -1;
    }
    //ÉèÖü¤»î±êÖ¾
    ifr_set_ip.ifr_flags |= IFF_UP |IFF_RUNNING;
    //get the status of the device
    if( ioctl( sock_set_ip, SIOCSIFFLAGS, &ifr_set_ip ) < 0 )
    {
         perror("SIOCSIFFLAGS");
         return -1;
    }
    close( sock_set_ip );
    return 0;
}
  
    
     
	
	
    
    
	Ïà¹ØÎĵµ£º
        
    
    1. HCI²ãÐÒé¸ÅÊö£º
HCIÌṩһÌ×ͳһµÄ·½·¨À´·ÃÎÊBluetoothµ×²ã¡£ÈçͼËùʾ£º
´ÓͼÉÏ¿ÉÒÔ¿´³ö£¬Host Controller Interface(HCI)  ¾ÍÊÇÓÃÀ´¹µÍ¨HostºÍModule¡£Hostͨ³£¾ÍÊÇPC£¬ ModuleÔòÊÇÒÔ¸÷ÖÖÎïÀíÁ¬½ÓÐÎʽ£¨USB,serial,pc-cardµÈ£©Á¬½Óµ½PCÉϵÄbluetooth Dongle¡£
ÔÚHostÕâÒ»¶Ë£ºapplication,SDP,L2capµÈÐÒé ......
	
    
        
    
    £¨L2CAPÐÒé¼ò½é£¬L2CAPÔÚBlueZÖеÄʵÏÖÒÔ¼°L2CAP±à³Ì½Ó¿Ú£©
Ò»£ºL2CAPÐÒé¼ò½é£º
Logical Link Control and Adaptation Protocol(L2CAP)
Âß¼Á¬½Ó¿ØÖƺÍÊÊÅäÐÒé (L2CAP) ΪÉϲãÐÒéÌá¹©ÃæÏòÁ¬½ÓºÍÎÞÁ¬½ÓµÄÊý¾Ý·þÎñ£¬²¢Ìṩ¶àÐÒ鹦ÄܺͷָîÖØ×é²Ù×÷¡£L2CAP ³äÐíÉϲãÐÒéºÍÓ¦ÓÃÈí¼þ´«ÊäºÍ½ÓÊÕ×î´ó³¤¶ÈΪ 64K µÄ L2CAP Ê ......
	
    
        
    
    Service Discovery Protocol(SDP)ÌṩһÖÖÄÜÁ¦£¬ÈÃÓ¦ÓóÌÐòÓз½·¨·¢ÏÖÄÄÖÖ·þÎñ¿ÉÓÃÒÔ¼°ÕâÖÖ·þÎñµÄÌØÐÔ¡£
·þÎñ·¢ÏÖÐÒé(SDP»òBluetooth SDP)ÔÚÀ¶ÑÀÐÒéÕ»ÖжÔÀ¶ÑÀ»·¾³ÖеÄÓ¦ÓóÌÐòÓÐÌØÊâµÄº¬Ò⣬·¢ÏÖÄĸö·þÎñÊÇ¿ÉÓõĺÍÈ·¶¨ÕâЩ¿ÉÓ÷þÎñµÄÌØÕ÷¡£SDP¶¨ÒåÁËbluetooth client·¢ÏÖ¿ÉÓÃbluetooth server·þÎñºÍËüÃǵÄÌØÕ÷µÄ·½·¨¡£ ......
	
    
        
    
          ÓÐʱ²»ÒªÒÔΪprintfÒ»¶¨ÄÜ´òÓ¡³öÊý¾ÝÀ´¡£ÓÐʱ£¬Äã²»ÔÚ³ÌÐòµÄÿ¸öµØ·½printfµÄµØ·½¶¼²»¼ÓÉÏ"\n”,³ÌÐò¸ù±¾¾Í²»´òÓ¡ÈκÎÊý¾Ý³öÀ´£¬ÐŲ»£¿£¡ÎҾ͵¹Ã¹µÄÓöµ½¸öÒ»´Î¡£Óöµ½ÕâЩºÜÍ·Ì۵쬻¹ÒÔΪÊdzÌÐòÄĶù³ö´í¿©¡£ÔÀ´ÕâÊÇÒòΪ£¬ËüÆäʵÓлº³åµÄ¹¦ÄÜ£¬Ö»ÓÐÔÚ“\n”£¬Ëü²Å½«»º³åÀïµÄ ......