我需要在我的接收,发送方法中添加超时。我尝试在运行程序后的编译后添加此方法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。非常感谢您的时间和帮助!