首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无法在Windows 7上创建带有管理帐户的原始套接字

无法在Windows 7上创建带有管理帐户的原始套接字
EN

Stack Overflow用户
提问于 2016-02-12 01:13:24
回答 1查看 1.2K关注 0票数 1

根据此页,如果帐户具有管理权限,则允许在Windows 7下创建原始套接字。我的本地帐户是一个管理员,但它仍然不允许我创建套接字。

如果我运行这个:

代码语言:javascript
复制
#include <stdio.h>
#include <stdlib.h>
#include <winsock2.h>
#include <ws2tcpip.h>

void sockerr(char *message)
{
        char errbuf[300];
        FormatMessage(FORMAT_MESSAGE_FROM_SYSTEM, NULL, WSAGetLastError(),
                      0, errbuf, sizeof(errbuf), NULL);
        printf("%s: (%d) %s", message, WSAGetLastError(), errbuf);
}

int main()
{
    int sock;
    struct sockaddr_in sin;
    struct WSAData data;

    if (WSAStartup(2, &data)) {
        fprintf(stderr, "Error in WSAStartup: %d\n", WSAGetLastError());
        exit(1);
    }

    sock = socket(AF_INET, SOCK_RAW, IPPROTO_IGMP);
    if (sock == -1) {
        sockerr("socket failed");
        exit(1);
    }
    printf("opened raw socket\n");
    closesocket(sock);
    return 0;    
}

我明白了:

套接字失败:(10013)尝试以其访问权限禁止的方式访问套接字。

但我是管理员:

这是在我的家庭桌面与Windows 7 Pro。我已经安装了McAfee杀毒软件,但是禁用它没有任何效果。

这个程序可以在我的Windows 7企业级笔记本电脑上正常工作。

有什么想法吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-02-12 01:27:56

不知道为什么要使用原始套接字,但解决方案似乎是使用绞盘,如果您在谷歌上可以找到使用它的例子。下面是一个示例:http://www.binarytides.com/raw-sockets-packets-with-winpcap/

在尝试之前,我还要确保程序以管理员的身份运行。也许你是个管理员,但是这个程序不是带着这个特权运行的。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35353129

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档