工控编程吧

标题: 上位机MFC如何获得本地计算机的网络协议信息 [打印本页]

作者: qq263946146    时间: 2019-8-8 10:39
标题: 上位机MFC如何获得本地计算机的网络协议信息


  1. void CGkbc8Dlg::OnButton2()
  2. {
  3.         //初始化WinSock
  4.         WSADATA WSAData;
  5.         if (WSAStartup(MAKEWORD(2,0), &WSAData)!= 0)
  6.         {
  7.                 return;
  8.         }

  9.         int nResult = 0;

  10.         //获得需要的缓冲区大小
  11.         DWORD nLength = 0;
  12.         nResult = WSAEnumProtocols(NULL, NULL, &nLength);
  13.         if (nResult != SOCKET_ERROR)
  14.         {
  15.                 return;
  16.         }
  17.         if (WSAGetLastError() != WSAENOBUFS)
  18.         {
  19.                 return;
  20.         }

  21.         WSAPROTOCOL_INFO* pProtocolInfo = (WSAPROTOCOL_INFO*)new BYTE[nLength];

  22.         //获得本地计算机协议信息
  23.         nResult = WSAEnumProtocols(NULL, pProtocolInfo, &nLength);
  24.         if (nResult == SOCKET_ERROR)
  25.         {
  26.                 delete[] pProtocolInfo;
  27.                 return;
  28.         }
  29.         for (int n = 0; n < nResult; n++)
  30.         {
  31.                 m_ctrlList.AddString(pProtocolInfo[n].szProtocol);
  32.         }

  33.         delete[] pProtocolInfo;

  34.         //清理WinSock
  35.         WSACleanup();
  36. }
复制代码
调用上面代码就可以显示出协议相关信息。m_ctrlList为我们添加的控件变量CListBox        m_ctrlList;
(, 下载次数: 1)