服务端 write时,收到RST响应(对端socket中断),导致服务器进程关闭

客户端申请下载文件,在下载过程中时,客户端终止程序(ctrl+c),服务器接着发送数据,根据TCP协议的规定,会收到一个RST的响应,服务端再往这个socket写数据时,系统会发出一个SIGPIPE信号给进程,通知进程这个连接已经断开,根据信号的默认处理规则SIGPIPE信号的默认执行动作是终止、退出,所以服务器会退出,因此会出现服务器在未提示错误的情况下进程就退出了。为了不让服务器退出,可以把SIGPIPE设为SIG_IGN,如signal(SIGPIPE, SIG_IGN);

http://blog.sina.com.cn/s/blog_8cf0057a01016x1n.html

你可能感兴趣的:(网络编程)