setsockopt SO_LINGER

Posted on

SO_LINGER:
只針對 socket 的 close() 發揮作用。
case 1 (default):
linger->l_onoff = 0; –> linger->l_linger no effect;
case 2:
linger->l_onoff !=0; linger->l_linger = 0 ;
close() immediately. 不管底層的資料是否送出,直接送一個 RST(reset)給另一端。因此另一端在 recv的時候,會產生 ECONNRESET 的 error

case 3:
linger->l_onff != 0; linger->l_linger != 0;
close() 會 block住或是等到 l_linger 的timeout時間到之後,產生 EWOULDBLOCK error

ref: http://www.developerweb.net/forum/archive/index.php/t-2982.html

廣告

發表迴響

在下方填入你的資料或按右方圖示以社群網站登入:

WordPress.com Logo

您的留言將使用 WordPress.com 帳號。 登出 / 變更 )

Twitter picture

您的留言將使用 Twitter 帳號。 登出 / 變更 )

Facebook照片

您的留言將使用 Facebook 帳號。 登出 / 變更 )

Google+ photo

您的留言將使用 Google+ 帳號。 登出 / 變更 )

連結到 %s