这是一个精练的本地IP查找类,类名、函数名和变量名均采用匈牙利命名法。小写的x代表我的姓氏首字母(谢欣伦),个人习惯而已,如有雷同,纯属巧合。
CxLocalHostIPAddrFind的使用如下:
XNET_API BOOL GetFirstValidIPAddress(LPTSTR lpszIPAddr) { BOOL bValid = FALSE; CxLocalHostIPAddrFind find; BOOL bRet = find.FindIPAddr(); while (bRet) { find.GetIPAddr(lpszIPAddr); bValid = IsValidIPAddress(lpszIPAddr); if (bValid) break; else bRet = find.FindNextIPAddr(); } find.FindIPAddrClose(); return bRet; }
然后在需要的地方调用此函数:
BOOL CO2CPbySocket::ListenRemoteHost() { TCHAR szIPAddr[NET_HOST_MAX_IPV6]; if (::GetFirstValidIPAddress(szIPAddr)) return m_ssLocalHost.ListenConnection(szIPAddr, NETPORT_NETWORK_COMM); else return FALSE; }
精练的代码不需要过多解释,你们懂的。To be continued...
下载