【发布时间】:2017-12-23 16:06:08
【问题描述】:
sendto() 给我“无效参数”,因为 len 从 20 减少了 2 个字节。 为什么调用 recvfrom() 会修改 len?
s=socket(AF_PACKET, SOCK_RAW, htons(ETH_P_ALL));
struct sockaddr_ll sll;
len=sizeof(sll);
bzero((char *)&sll, sizeof(sll));
sll.sll_ifindex=3;
rf=recvfrom(s, buf, sizeof(buf), 0, (struct sockaddr *) &sll, &len);
st=sendto(s, buf, 6+6+2+20+8+8, 0, (struct sockaddr *) &sll, len);
【问题讨论】:
-
想一想...为什么要将指向实际
len的指针传递给调用?