https://www.cnblogs.com/tfanalysis/articles/4241243.html
当server端关闭一个socket连接时,如果client端继续发送数据,系统会发出一个SIGPIPE信号给进程,通知进程这个连接已经断开,不 应该再发送数据。而Linux系统的默认处理规则是对SIGPIPE信号执行terminate(终止、退出)处理,所以client端程序会异常退出, 为了避免这种情况发生,可以将SIGPIPE设为SIG_IGN。
signal(SIGPIPE, SIG_IGN);
#include <string.h>
#include <signal.h>
#include "socket.h"