请问关于iErrorCode=WSAIoctl(SockRaw, SIO_RCVALL,&dwBufferInLen, sizeof(dwBufferInLen), &dwBufferLen, sizeof(dwBufferLen),&dwBytesReturned , NULL , NULL );这个函数中,SIO_RCVALL这个参数,为什么我使用的vc6.0中winsock2.h这个文件没有对它的定义呢?其中vc6.0运行在xp之上的。在使用的时候应该把它定义成多少呢?难道xp上不支持它吗?还有一个问题呢!!!!使用RAW_SOCK ,同时将协议参数设置成IPPROTO—UDP,socket(AF_INET,RAW_SOCK,IPPROTO_UDP);请问 我自填充一个UDP头和数据。然后用sendto发送出去,可以吗?但没有设置IP_HDRNCAL选项。不知道可不可以???我看过PING的代码,就自己填充的ICMP包头,然后发出去了。。不知道如果使用UDP可不可以。请解释原因??
#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)
可以填充UDP头,照着UDP协议格式填就可以了,和ICMP一样。不只UDP,全部上层协议都可以,TCP都可以填,制造synflood!
_WSAIOW(IOC_VENDOR,1) 我也亲自算了。。这个宏是:(IOC_IN|(x)|(y))其中IOC_IN为:0X80000000,IOC_VENDOR为:0x18000000,那么结果是不是:0x98000000啊可是还是不行啊!!