我在DOS下可以PING网络,为什么在VC中调用rawSocket = socket(AF_INET, SOCK_RAW, IPPROTO_ICMP)返回错误值呢??请指教,很着急
等待高手 问题点数:60、回复次数:9Top
1 楼myckd(二呆阿不)回复于 2001-09-03 01:08:33 得分 0
快来人呀Top
2 楼myckd(二呆阿不)回复于 2001-09-03 01:13:54 得分 0
怎么还不来人呀Top
3 楼myckd(二呆阿不)回复于 2001-09-03 01:23:56 得分 0
怎么没人回答呀Top
4 楼maxsuy(魔法兔子)回复于 2001-09-03 07:14:54 得分 0
是winsock 2.0版本吗Top
5 楼StoneCold(我是天才)回复于 2001-09-03 09:22:21 得分 0
在工程中加入ws2_32.lib
而且 #include <winsock2.h>
Top
6 楼StoneCold(我是天才)回复于 2001-09-03 09:25:23 得分 60
而且加入如下代码,
if (WSAStartup(MAKEWORD(2,1),&wsaData) != 0){
//fprintf(stderr,"WSAStartup failed: %d\n",GetLastError());
//ExitProcess(STATUS_FAILED);
return 1;
}
另外,调用的形式换为
sockRaw = WSASocket (AF_INET,
SOCK_RAW,
IPPROTO_ICMP,
NULL, 0,0);
Top
7 楼cococut(小鱼的天空)回复于 2001-09-03 09:33:16 得分 0
StoneCold(我是天才) 说得没错,只要wsastart()就可以搞店!Top
8 楼gongxy(codekiller)回复于 2001-09-03 09:40:08 得分 0
WinSock 2.0以上的实现才支持SOCK_RAW
所以WSAStartup时要用2.0以上
Top
9 楼myckd(二呆阿不)回复于 2001-09-03 09:43:46 得分 0
to:StoneCold谢谢,分数给出Top




