我有一个小应用程序,临时添加几个(3-4) IP地址使用AddIPAddress功能从IP助手。几秒钟(2-3)后,它使用DeleteIPAddress函数删除这些地址。
函数DeleteIPAddress有效且不返回错误,但有时(每3轮或4轮添加和删除一次)它会在接口上触发断开事件(与断开和连接电缆完全相同)。
我希望避免这些断开,因为它们切断了在同一接口中进行的任何通信,但我在文档中看不到任何关于此行为的内容。
下面是我添加每个IP地址的方法:
auto dwRetVal = AddIPAddress(iaIPAddress, iaIPMask, _idx, &NTEContext, &NTEInstance);
if (dwRetVal == ERROR)
{
std::cout << "Error on AddIPAddress" << std::endl;
}下面是我删除它们的方法:
auto dwRetVal = DeleteIPAddress(ipContext);
if (dwRetVal != NO_ERROR)
{
std::cout << "Error on DeleteIPAddress" << std::endl;
}我是不是遗漏了什么?
发布于 2019-05-22 18:34:54
您没有正确检查来自AddIPAddress的返回值,您应该测试!= ERROR_SUCCESS。
如果删除失败,则不应调用AddIPAddress。
https://stackoverflow.com/questions/56253558
复制相似问题