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

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

/*Winsock 初始化*/

if (WSAStartup(MAKEWORD(2, 2), &wsaData) != 0)
{
//如果初始化不成功则报错,GetLastError()返回错误信息
printf("WSAStartup() failed:%d]\n", 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\n", 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为默认打开程序就好了。

最新文章

  1. 查看修改Linux时区和时间
  2. 聊Javascript中的AOP编程
  3. 《Head First Servlet JSP》学习笔记二
  4. BZOJ2002 &amp; LCT模板(分块不会搞)
  5. iOS 开发 - 改善APP的流畅度 (绘制股票行情)
  6. Enterprise Library 服务问题
  7. javascript笔记---算法基础学习
  8. android利用反射通过代码收缩通知栏
  9. asp.net js调用后台方法
  10. Swift - 判端网络连接状态,连接类型(3G还是Wifi)
  11. string类的几种方法
  12. Selenium自动化获取Http报文信息并判断当前API状态
  13. BZOJ2242[SDOI2011]计算器——exgcd+BSGS
  14. [JUC-4]ThreadPoolExecutor源码分析
  15. 吴裕雄 python深度学习与实践(7)
  16. MYSQL中的int(11)到底代表什么意思?
  17. L310
  18. MATLAB——textscan
  19. [不屈的复习] - 安装Java初始化环境
  20. ubuntu 14.04 (desktop amd 64) 下载

热门文章

  1. delphi的Socket(有两种分别继承TObject和TComponent的方式)
  2. python中的while循环,格式化输出,运算符,编码
  3. Spring Boot的学习之路(02):和你一起阅读Spring Boot官网
  4. Python 爬虫从入门到进阶之路(八)
  5. jmeter安装与部署
  6. iOS开发(5):设备唯一标识与全局变量
  7. SpringBoot项目多数据源配置
  8. Java学习笔记——XML入门
  9. Python笔记【1】_字符串学习
  10. Cisco packet tracer6.0下的网络工程实训