DDNS调试日志

来源:互联网 发布:js 数组 方法 编辑:程序博客网 时间:2024/05/16 23:47

今天整合代码时候发现,DDNS不断向服务器发出请求的时候,会导致整个进程莫名其妙的退出

后来经过不断的调试发现,是因为对方DDNS服务器已经关闭,而我这边还在send数据,所以导致进程退出

解决办法:

send一个读端已经关闭的管道会产生SIGPIPE信号
SIG_PIPE默认处理是终止程序
只要屏蔽掉这个信号就可以了
if(send(sockfd, msg, msglen, MSG_NOSIGNAL)==-1)   //忽略这个SIG_PIPE信号

修改后就好了