Fi C ++

我到处搜索......我做到了! 我找不到任何关于如何连接到C ++上的Wi-Fi的例子。

我在MSDN上找到并尝试了WlanGetAvailableNetworkList()和WlanQueryInterface()的示例。 我还发现了一个我在C#上搜索的例子。 任何人都可以告诉我一个用于C ++的吗?

编辑:我对C ++(服务器,Wifi API,甚至不是很多Win32 API)的Internet部分一无所知,只是语言的核心,我只想做一个简单的程序,找到一个打开的连接并自动连接到它并如果连接成功,则播放声音。 如果您可以提供一些信息链接,我会进行调查并发布任何我能找到的解决方案。


鉴于代码是不是先进的类型,即不是很好,但它的工作。 我在Windows中使用了代码块。

#include <iostream>
#include<stdlib.h>
#include<fstream>
#include<string>
#include<conio.h>

using namespace std;

int main()
{
ofstream xmlFile;
ifstream xmlFile1;

string name="",pass="";
string ntyp="Wi-Fi",netType,fileTest=">test.txt",check,ntype,fil,xfileName,fileName="myWlan.xml";
char c='"',cho='2',cho1='1',c1;
netType=c+ntyp+c+fileTest;
xfileName=c+fileName+c;
int succ=0;

 do
 {
      system("netsh wlan show networks");
      cout<<"   >--------------------         TO REFRESS PRESS :1       nn   >--------------------         TO CHOOSE NETWORK PRESS : 2              nn   >   ";
      cho=getch();
}while(cho!='2');

cout<<"n    Enter the desired network name-------:       ";
cin>>name;
do
{
   cout<<"n    Enter wifi Password------:        ";
    cin>>pass;
    xmlFile.open(fileName.c_str());

    //Writing a xml file .....................

    xmlFile<<"<?xml version="<<c<<"1.0"<<c<<"?>n";
    xmlFile<<"<WLANProfile xmlns="<<c<<"http://www.microsoft.com/networking/WLAN/profile/v1"<<c<<">n";
    xmlFile<<"<name>";
    xmlFile<<name;
    xmlFile<<"</name>n<SSIDConfig>n<SSID>n<hex>";
    for(int i=0;i<name.length();i++)
    xmlFile<<hex<<(int)name.at(i);
    xmlFile<<"</hex>n<name>";
    xmlFile<<name;
    xmlFile<<"</name>n</SSID>n</SSIDConfig>n<connectionType>ESS</connectionType>n<connectionMode>auto</connectionMode>n<MSM>n<security>n<authEncryption>";
    xmlFile<<"n<authentication>WPA2PSK</authentication>n<encryption>AES</encryption>n<useOneX>false</useOneX>n</authEncryption>n<sharedKey>";
    xmlFile<<"n<keyType>passPhrase</keyType>n<protected>false</protected>n<keyMaterial>";
    xmlFile<<pass;
    xmlFile<<"</keyMaterial>n</sharedKey>n</security>n</MSM>n";
    xmlFile<<"<MacRandomization xmlns="<<c<<"http://www.microsoft.com/networking/WLAN/profile/v3"<<c<<">n";
    xmlFile<<"<enableRandomization>false</enableRandomization>n</MacRandomization>n</WLANProfile>";
    xmlFile.close();

    //addd the xml file to system profile.............
    system(("netsh wlan add profile filename="+xfileName).c_str());
    //to let system realize what changes have been made...............
    system("timeout /t 2");
    //to check if connected...........
    system(("netsh interface show interface name="+netType).c_str());

    xmlFile1.open("test.txt");
    while(!xmlFile1.eof())
    {
         xmlFile1>>c1;
         if(c1==':')
         {
              for(int i=0;i<9;i++)
              {
                   xmlFile1>>c1;
                   check=check+c1;
               }
         }
              if(check=="Connected")
              {
                  cout<<"...............................................You are connected!!.................................";
                  succ=1;break;
              }
              if(check!="Connected")check="";



    }
    xmlFile1.close();
    if(succ==1)break;
  }while(succ!=1);
return 0;
}

希望能帮助到你 ....


好吧,我想你正在寻找一个枚举函数,比如这个:

http://msdn.microsoft.com/en-us/library/windows/desktop/ms706716%28v=vs.85%29.aspx

我想你的意思是检查WLan状态是否启动。 如果仔细观察,枚举函数将返回一个包含isState的结构,该结构就是其中之一:

typedef enum _WLAN_INTERFACE_STATE { 
  wlan_interface_state_not_ready              = 0,
  wlan_interface_state_connected              = 1,
  wlan_interface_state_ad_hoc_network_formed  = 2,
  wlan_interface_state_disconnecting          = 3,
  wlan_interface_state_disconnected           = 4,
  wlan_interface_state_associating            = 5,
  wlan_interface_state_discovering            = 6,
  wlan_interface_state_authenticating         = 7
} WLAN_INTERFACE_STATE, *PWLAN_INTERFACE_STATE;

要实际“连接”,你需要让服务器在另一边监听......尽管Renan也给了你一个很好的链接(请参阅问题的评论部分),但这需要你有一个SSID。 这取决于你的软件是否确实知道Wifi SSID。

链接地址: http://www.djcxy.com/p/15631.html

上一篇: Fi C++

下一篇: Issues with CORS. Flask <