Program received signal SIGPIPE, Broken pipe
what happen?
你write的fd被对方关闭了。需要如下调用避免signal(SIGPIPE, SIG_IGN);并且处理write的返回,errno=EPIPE
如果使用ACE_TASK的话,可能handle_input已经接收到Client断开连接的信号,但svc中的线程可能还在向这个连接发送数据,
就有可能出现上面的问题,简单解决的办法就是创建一个变量,一旦接收到断开连接的信号,就改变这个变量的值,svc中的线程
在发送数据前检测这个变量的值,避免向已经关闭的socket发送数据
Program received signal SIGPIPE, Broken pipe
最新推荐文章于 2021-09-28 10:24:03 发布