setsockopt问题
#define IP_RECORD_ROUTE 0x07
IpOptionHeader ipopt;
ipopt.code=IP_RECORD_ROUTE;
ipopt.ptr=4;
ipopt.len=39;
if(setsockopt(socketfd,IPPROTO_IP,IP_OPTIONS,(char*)&ipopt,sizeof(ipopt))==-1)
{
perror("setsockopt IP_OPTIONS");
return;
}
错误提示:setsockopt IP_OPTIONS: Invalid argument;不知是什么原因。
------解决方案--------------------米这玩意吧
man一下setsockopt 看看有没有IP_OPTIONS
------解决方案--------------------int setsockopt( int s,
int level,
int optname,
const void * optval,
socklen_t optlen );
optname可选下面的,没有你说的IP_OPTIONS
IP_HDRINCL · IP_TOS · SO_BINDTODEVICE · SO_BROADCAST · SO_DEBUG · SO_DONTROUTE · SO_ERROR · SO_KEEPALIVE · SO_LINGER · SO_OOBINLINE · SO_RCVBUF · SO_SNDBUF · SO_RCVLOWAT · SO_RCVTIMEO · SO_REUSEADDR · SO_REUSEPORT · SO_SNDLOWAT · SO_SNDTIMEO · SO_TIMESTAMP · SO_TYPE · SO_USELOOPBACK · TCP_KEEPALIVE · TCP_NODELAY
------解决方案--------------------你这个应该有问题的啊 那个结构体里 没IP这个啊
------解决方案--------------------使用 man setsockopt 找到标准用法