<menu id="w8yyk"><menu id="w8yyk"></menu></menu>
  • <dd id="w8yyk"><nav id="w8yyk"></nav></dd>
    <menu id="w8yyk"></menu>
    <menu id="w8yyk"><code id="w8yyk"></code></menu>
    <menu id="w8yyk"></menu>
    <xmp id="w8yyk">
    <xmp id="w8yyk"><nav id="w8yyk"></nav>
  • 網站首頁 > 物聯資訊 > 技術分享

    利用ioctl()獲取無線速率

    2016-09-28 00:00:00 廣州睿豐德信息科技有限公司 閱讀
    睿豐德科技 專注RFID識別技術和條碼識別技術與管理軟件的集成項目。質量追溯系統、MES系統、金蝶與條碼系統對接、用友與條碼系統對接

    其實對于自己裝了網卡驅動的來說,應該從最根本的驅動中獲取速率。

    但是用ioctl()也可以,其實實現和iwconfig命令相同。

     

    僅僅獲取速率這部分:

     

     

    [cpp] view plain copy  
    1. #include <stdio.h>  
    2. #include <stdlib.h>  
    3. #include <sys/socket.h>  
    4. #include <string.h>  
    5. #include "wireless_copy.h"  
    6. #define dvname "ath0"  
    7. int get_rate(int sock, struct iwreq* wrq,__s32 rate);  
    8. int main()  
    9. {  
    10.     struct iwreq wrq;  
    11.     int sock;  
    12.     char gInterfaceName[16];  
    13.     __s32 rate;  
    14.     memset(gInterfaceName, 0, sizeof(gInterfaceName));  
    15.     strcat(gInterfaceName,dvname);  
    16.     sock = socket(AF_INET, SOCK_DGRAM, 0);  
    17.         if (sock < 0)  
    18.         {  
    19.             printf("Error Creating Socket for ioctl/n");  
    20.             return 0;  
    21.         }  
    22.     memset(&wrq, 0, sizeof(wrq));  
    23.     strncpy(wrq.ifr_name, gInterfaceName, IFNAMSIZ);  
    24.     get_rate(sock, &wrq,rate);  
    25.     printf("/nrate:%dM/n/n",wrq.u.bitrate.value/1000000);  
    26.     return 0;  
    27. }  
    28. int get_rate(int sock, struct iwreq* wrq,__s32 rate)  
    29. {  
    30.     if(ioctl(sock, SIOCGIWRATE, wrq) < 0)  
    31.     {  
    32.         perror("Ioctl error");  
    33.         return(0);  
    34.     }  
    35.     return 1;  
    36. }  

     

     

    其中wireless_copy.h可以從madwifi /tools 文件夾中找到。

    RFID管理系統集成商 RFID中間件 條碼系統中間層 物聯網軟件集成
    最近免费观看高清韩国日本大全