想用socket发get请求,下载一个页面。
setsockopt(s, IPPROTO_IP, IP_HDRINCL, (char *)&bOpt,sizeof(bOpt));
之后
send(s,szSendBuf,sizeof(ipHdr)+sizeof(tcpHdr)+strlen(strMessage),0);
可是服务器返回参数错误信息。
郁闷啊....高人达人牛人快help个busy吧
setsockopt(s, IPPROTO_IP, IP_HDRINCL, (char *)&bOpt,sizeof(bOpt));
之后
send(s,szSendBuf,sizeof(ipHdr)+sizeof(tcpHdr)+strlen(strMessage),0);
可是服务器返回参数错误信息。
郁闷啊....高人达人牛人快help个busy吧
如果用raw socket来封装TCP是不可能的,所以你要用socket spi来实现.
如果用raw socket来封装TCP是不可能的,所以你要用socket spi来实现.////////////////////////////////////////////////////////////////////////
这话怎么说?
应用程序来处理TCP协议栈,想都不要想,除非你做成驱动。
Winsock服务提供者接口(SPI),它是Winsock 2中里面增加的一种不同于TCP/IP协议的传输协议。
具体的话,楼主自己找点资料参考一下了~~
应用程序来处理TCP协议栈,想都不要想,除非你做成驱动。//////////////////////////////////////////////////////////////////////////
是的啊,raw socket处理的是IP数据包,也包括对IP数据包所有传送的数据内容进行填写,当然可以进行TCP头的处理了.当然,这个处理是和系统的协议栈是没关系的.用raw socket的时候,系统是不会为我们添加IP包头首部之后的数据内容的.得我们自己实现.