|
藍森林 http://www.lslnet.com 2006年6月6日 10:18
close socket時出現阻塞現象怎麼辦
close socket時出現阻塞現象怎麼辦:
程序大體這樣;
int nSocket;
main()
{
signal(SIGUSR2, HandleUsr2);
建立socket;
accept();
}
void HandleUsr2()
{
/*這裡老是出現等待*/
close(nSocket);
exit(0);
} |
close socket時出現阻塞現象怎麼辦
設置SOCKET的屬性!
如果CLOSE之前沒有必須發送的數據,可以設置LINGER的! |
close socket時出現阻塞現象怎麼辦
struct linger linger ;
int ret ;
if(sock <= 0 ) return 1 ;
linger.l_onoff = 1 ;
linger.l_linger = 0 ;
setsockopt(sock, SOL_SOCKET, SO_LINGER, (char *)&linger,sizeof(linger));
fcntl(sock,F_SETFL,0);
ret=close(sock); |
| |