DeleteIPAddress函数有效,但触发断开连接

时间:2019-05-22 09:27:57

标签: c++ windows network-programming iphelper

我有一个小应用程序,可以使用IP Helper中的AddIPAddress函数临时添加几个(3-4)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;
    }

我想念什么吗?

1 个答案:

答案 0 :(得分:0)

您没有正确检查AddIPAddress的返回值,应该测试!= ERROR_SUCCESS

如果AddIPAddress失败,则不应调用delete。