c++ - sendto 因非管理员用户而失败,错误代码为 10013

标签 c++ windows sockets

我发现了更多像 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/

相关文章:

c++ - 构造函数解析顺序的问题

windows - 如何记录批处理文件中删除了多少数据

c++ - 做socket编程时,查找域名然后连接的正确方法是什么?

c - 没有keepalive的物理断开的tcp套接字的生命周期

c++ - 如何在 glutMainLoop() 调用后清理内存?

C++ 将参数传递给 lambda 函数

c++ - C++在调用静态/全局对象的构造函数之前是否有效?

windows - 在Windows批处理文件中,您可以链式执行不是另一个批处理文件的内容吗?

c# - Windows 服务 - 安装服务时出现 UnauthorizedAccessException 错误 (C#)

java - 服务器套接字必须等待客户端的下一个命令java