关于SIO_RCVALL

为什么SIO_RCVALL=0x98000001 ?是有根据的。 

在winsock2.h中定义了以下宏: 
#define IOC_VOID 0x20000000 /* no parameters */ 
#define IOC_OUT 0x40000000 /* copy out parameters */ 
#define IOC_IN 0x80000000 /* copy in parameters */ 

#define IOC_UNIX 0x00000000 
#define IOC_WS2 0x08000000 
#define IOC_PROTOCOL 0x10000000 
#define IOC_VENDOR 0x18000000 

#define _WSAIO(x,y) (IOC_VOID|(x)|(y)) 
#define _WSAIOR(x,y) (IOC_OUT|(x)|(y)) 
#define _WSAIOW(x,y) (IOC_IN|(x)|(y)) 
#define _WSAIORW(x,y) (IOC_INOUT|(x)|(y)) 

里面没有SIO_RCVALL的定义,但是你可以查看msdn中的ms-help://MS.MSDNQTR.2003FEB.2052/winsock/winsock/wsaioctl_2.htm看WSAIoctl函数中的SIO_RCVALL 的说明,你可以知道它是这样定义的: 
#define SIO_RCVALL _WSAIOW(IOC_VENDOR,1) 
即: 
0x80000000|0x18000000|0x00000001=0x98000001 
其中IOC_VENDOR 实际上是IOC_WS2|IOC_PROTOCOL ,因为要receive all IP packets on the network on win32 platform. 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值