VC++6.0原始套接字出现 C2065:'SIO_RCVALL' : undeclared identifier错误的解决方法

最近一段时间在研究原始套接字,准备做一个仿Sniffer的嗅探器。

在调用WSAIoctl函数,并编译时会有两个错误:基本意思就是WSAIoctl和SIO_RCVALL是未定义的。

前一个问题很好解决:查阅MSDN可得到如下定义:

Header: Declared in Winsock2.h.

Library: Use Ws2_32.lib.

但添加后,重新编译会出现数十个错误(汗~~),大概看了一下就是函数重定义的意思。马上找到Stafx.h文件,删除其中的#include <afxsock.h>语句,重新编译,只有后一个错误了~~

至于后一个错误是少了一个头文件所致,因此只要新建一个头文件,取名为mstcpip.h,然后复制以下内容,搞定~~嘿嘿~

//     Copyright   (C)   Microsoft   Corporation,   1996-1999 

#ifndef   MSTCPIPH 

#define   MSTCPIPH 

 

#if   _MSC_VER   >   1000 

#pragma   once 

#endif 

 

/*   Argument   structure   for   SIO_KEEPALIVE_VALS   */ 

 

struct   tcp_keepalive   { 

u_long     onoff; 

u_long     keepalivetime; 

u_long     keepaliveinterval; 

}; 

 

//   New   WSAIoctl   Options 

 

#define   SIO_RCVALL                         _WSAIOW(IOC_VENDOR,1) 

#define   SIO_RCVALL_MCAST             _WSAIOW(IOC_VENDOR,2) 

#define   SIO_RCVALL_IGMPMCAST     _WSAIOW(IOC_VENDOR,3) 

#define   SIO_KEEPALIVE_VALS         _WSAIOW(IOC_VENDOR,4) 

#define   SIO_ABSORB_RTRALERT       _WSAIOW(IOC_VENDOR,5) 

#define   SIO_UCAST_IF                     _WSAIOW(IOC_VENDOR,6) 

#define   SIO_LIMIT_BROADCASTS     _WSAIOW(IOC_VENDOR,7) 

#define   SIO_INDEX_BIND                 _WSAIOW(IOC_VENDOR,8) 

#define   SIO_INDEX_MCASTIF           _WSAIOW(IOC_VENDOR,9) 

#define   SIO_INDEX_ADD_MCAST       _WSAIOW(IOC_VENDOR,10) 

#define   SIO_INDEX_DEL_MCAST       _WSAIOW(IOC_VENDOR,11) 

 

#endif 

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 5
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值