【问题标题】:Connect to a network in .NET C++ application在 .NET C++ 应用程序中连接到网络
【发布时间】:2017-04-18 06:44:26
【问题描述】:

我正在使用 C++ .NET 开发 Windows 窗体应用程序,并尝试连接到无线网络并检索网络状态详细信息,例如 SSID 和连接性。我尝试查看 wininet,但似乎该库不提供本地网络功能。这样做最简单的方法是什么?任何帮助将不胜感激。

【问题讨论】:

  • 您是否使用任何开源库,例如 Boost C++ 或 libcurl ?
  • 不,但我愿意接受。
  • 尝试使用boost C++,它是开源的并且容易做,你可以在他们的文档中找到代码sn-ps。
  • 当您提到“连接性”时,您究竟是什么意思?
  • @WillisZawisa .NET 语言易于互操作。但 C++/CLI 旨在用作托管代码和本机代码之间的互操作层。用它来构建一个完整的应用程序很痛苦。如果您选择它是因为您了解 C++,那么请坚持使用 C++。如果您愿意使用其他语言,C# 将更适合 UI 开发。

标签: .net winforms c++-cli wifi


【解决方案1】:

使用Boost C++库进行连接,它提供了用于网络编程的类,具体来说是Boost Asio。

示例代码片段:

asio::ip::tcp::socket socket(io_service);
// Do all your accepting and other stuff here.

asio::ip::tcp::endpoint remote_ep = socket.remote_endpoint();
asio::ip::address remote_ad = remote_ep.address();
std::string s = remote_ad.to_string();

一行转换:

asio::ip::tcp::socket socket(io_service);
// Do all your accepting and other stuff here.

std::string s = socket.remote_endpoint().address().to_string();

我不确定它针对您的查询提供的功能,但肯定是网络编程的最佳选择之一。我没有使用任何与 SSID 相关的东西。

PS:Boost 提供跨平台支持。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-07-30
    • 1970-01-01
    • 1970-01-01
    • 2016-07-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多