藍森林首頁 | 返回主頁 | 本站地圖 | 站內搜索 | 聯繫信箱 |
 您目前的位置:首頁 > 自由軟件 > 技術交流 > 應用編程


    

藍森林 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);



Copyright © 1999-2000 LSLNET.COM. All rights reserved. 藍森林網站 版權所有。 E-mail : webmaster@lslnet.com