zoukankan      html  css  js  c++  java
  • WSASocket()创建套接字不成功解决方法

    这几天我在写一个模仿windows自带的ping程序,可是套接字总是创建不成功,在网上找了一些资料最后总算把问题解决了,现在总结一下。

    解决方法:以管理员运行VS就行了我的是vs2013,vs2010也一样。

    /*Winsock 初始化*/

    if (WSAStartup(MAKEWORD(2, 2), &wsaData) != 0)
    {
    //如果初始化不成功则报错,GetLastError()返回错误信息
    printf("WSAStartup() failed:%d] ", GetLastError());
    return;

    }

    /*创建原始套接字,该套接字用于ICMP协议*/

            SOCKET m_socket;

    m_socket = WSASocket(AF_INET, SOCK_RAW, IPPROTO_ICMP, NULL, 0, WSA_FLAG_OVERLAPPED);
    /*如果创建套接字不成功*/
    if (m_socket == INVALID_SOCKET)
    {
    printf("WSASocket() failed: %d ", WSAGetLastError());
    return;
    }

    PS:已经链接了Ws2_32.lib,#pragma comment(lib, "Ws2_32.lib")

    #include<winsock2.h>
    #include<ws2tcpip.h>

    也已加入了

    解决方法:以管理员运行VS就行了我的是vs2013,vs2010也一样。

    vs2013(2010)如何以管理员权限启动运行:

    在某些项目进行开发的时候,需要提升应用程序本身的权限,这个是很容易的。
    找到VS2013的快捷方式:右击->以管理员身份运行->打开项目
    或者右击打开文件位置找到VS2013的启动项目devenv.exe:右击属性兼容性特权等级,以管理员权限运行;
    如果需要每个用户都以管理员权限运行,还可以更改所有用户的设置特权等级,以管理员权限运行。
    然后在项目的打开方式中确保以VS2013为默认打开程序就好了。


  • 相关阅读:
    SDN课程阅读作业(2)
    2019 SDN上机第5次作业
    第05组 Alpha事后诸葛亮
    第05组 Alpha冲刺(4/4)
    2020-4-5助教一周小结
    2020-3-29助教一周小结
    2020-3-22助教一周小结
    2020-03-15助教一周小结
    2020-03-08助教一周小结
    第一次个人编程作业(个人实现)
  • 原文地址:https://www.cnblogs.com/haxianhe/p/9271260.html
Copyright © 2011-2022 走看看