Linux下socket函數(shù)send導(dǎo)致程序終止
在寫服務(wù)器的時(shí)候發(fā)現(xiàn)服務(wù)器運(yùn)行一段時(shí)間之后莫名終止,排查代碼,最后發(fā)現(xiàn)是send()函數(shù)導(dǎo)致的,send()在對(duì)一個(gè)已經(jīng)關(guān)閉的socket發(fā)送時(shí)會(huì)發(fā)出一個(gè)信號(hào),默認(rèn)處理是使程序退出,可以添加MSG_NOSIGNAL解決
將send(sock,buf,len,0);改成send(sock,buf,len,MSG_NOSIGNAL)
標(biāo)簽: