使用setsockopt()方法时出现细分错误

时间:2019-05-18 09:54:36

标签: c linux sockets udp

我需要在我的接收,发送方法中添加超时。我尝试在运行程序后的编译后添加此方法setsockopt();,但收到此错误消息“ Segmentation fault(core dumped)”。

...
#include <sys/time.h>
...


    struct timeval tv;
    tv.tv_sec = 0;
    tv.tv_usec = 20000;

    if((sock=socket(AF_INET,SOCK_DGRAM,0))<0)
    {
        printf("Error at socket()");
        exit(2);
    }

    setsockopt (sock, SOL_SOCKET, SO_RCVTIMEO,(char*) &tv, sizeof(struct timeval));
    setsockopt (sock, SOL_SOCKET, SO_SNDTIMEO, (char*)&tv, sizeof(struct timeval));

接收和发送方法需要20毫秒的超时时间。

编辑 显然该错误是由其他原因引起的。我按照您的建议执行的步骤是开始调试,我做到了。在Linux上使用gbd。非常感谢您的时间和帮助!

0 个答案:

没有答案