//初始化WinSock
WSADATA WSAData;
if (WSAStartup(MAKEWORD(2,0), &WSAData)!= 0)
{
return;
}
int nResult = 0;
//获得需要的缓冲区大小
DWORD nLength = 0;
nResult = WSAEnumProtocols(NULL, NULL, &nLength);
if (nResult != SOCKET_ERROR)
{
return;
}
if (WSAGetLastError() != WSAENOBUFS)
{
return;
}
WSAPROTOCOL_INFO* pProtocolInfo = (WSAPROTOCOL_INFO*)new BYTE[nLength];
//获得本地计算机协议信息
nResult = WSAEnumProtocols(NULL, pProtocolInfo, &nLength);
if (nResult == SOCKET_ERROR)
{
delete[] pProtocolInfo;
return;
}
for (int n = 0; n < nResult; n++)
{
m_ctrlList.AddString(pProtocolInfo[n].szProtocol);
}
delete[] pProtocolInfo;
//清理WinSock
WSACleanup();
CListBox* pListBox = (CListBox*)GetDlgItem(IDC_LIST);
pListBox->ResetContent();
MIB_TCPSTATS TCPStats;
//获得TCP协议统计信息
if (GetTcpStatistics(&TCPStats) != NO_ERROR)
{
return;
}
CString strText = _T("");
<
WSADATA WSAData;
if (WSAStartup(MAKEWORD(2,0), &WSAData)!= 0)
{
return;
}
int nResult = 0;
//获得需要的缓冲区大小
DWORD nLength = 0;
nResult = WSAEnumProtocols(NULL, NULL, &nLength);
if (nResult != SOCKET_ERROR)
{
return;
}
if (WSAGetLastError() != WSAENOBUFS)
{
return;
}
WSAPROTOCOL_INFO* pProtocolInfo = (WSAPROTOCOL_INFO*)new BYTE[nLength];
//获得本地计算机协议信息
nResult = WSAEnumProtocols(NULL, pProtocolInfo, &nLength);
if (nResult == SOCKET_ERROR)
{
delete[] pProtocolInfo;
return;
}
for (int n = 0; n < nResult; n++)
{
m_ctrlList.AddString(pProtocolInfo[n].szProtocol);
}
delete[] pProtocolInfo;
//清理WinSock
WSACleanup();
CListBox* pListBox = (CListBox*)GetDlgItem(IDC_LIST);
pListBox->ResetContent();
MIB_TCPSTATS TCPStats;
//获得TCP协议统计信息
if (GetTcpStatistics(&TCPStats) != NO_ERROR)
{
return;
}
CString strText = _T("");
<