当ICMP目标不可达数据包到达时,在recv上的errno 90消息太长

时间:2012-11-18 19:47:40

标签: sockets recv icmp

我正在从具有recv函数的套接字读取数据,并在收到ICMP目标不可达数据包时不断收到错误。我真的不知道问题出在哪里。我尝试将套接字设置为不同的选项,但它们都不适合我。我使用RAW套接字。

这是我的setsockopt:

setsockopt(sock, IPPROTO_IP, IP_HDRINCL, (char *)&optval, sizeof(optval))

optval设置为1

这是我的回忆:

    // read response from socket
    if ((len = recv(sock, buffer, BUFFER_MAX, 0)) == -1) 
      fprintf(stderr,"Error with reading data - %d\n",errno);

BUFFER_MAX定义为65536

如果有人遇到类似的问题,请你解释一下,在尝试接收ICMP dest时,总会有错误代码90。不可达的包? ECHO回复工作正常。

0 个答案:

没有答案