我发现了更多像 ping 一样工作的源代码。我对它们的唯一问题是,如果我以非管理用户身份运行该程序,则会返回错误代码 10013,这意味着:“试图以其访问权限禁止的方式访问套接字。”如果我使用属于管理员组成员的用户运行该程序,那么它工作正常。
nResult = sendto (sock, pSendBuffer, sizeof (ICMPheader) + nMessageSize, 0, (SOCKADDR *)&dest, sizeof (SOCKADDR_IN));
::GetSystemTime (&timeSend);
++nPacketsSent;
if (nResult == SOCKET_ERROR)
{
cerr << endl << "An error occured in sendto operation: " << "WSAGetLastError () = " << WSAGetLastError () << endl;
}
谁能帮我解决这个问题,或者告诉我为什么非管理员用户不能使用这段代码?如果没有,那么我会使用一些代码,我可以将其用于非管理员组成员的用户。
提前致谢!
坎比
最佳答案
如果您想在 Windows 上的应用程序中实现 ping 功能,那么您应该查看 IcmpSendEcho2函数而不是尝试使用原始套接字。
关于c++ - sendto 因非管理员用户而失败,错误代码为 10013,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1623455/