[sylpheed-jp:10293] Re: 機能要望: TCP Keep-alive機能の追加

Hiroshi MIURA hirmiura @ gmail.com
2007年 5月 20日 (日) 23:34:10 JST


三浦です。

返信遅くなりましたが、、、

07/05/16 に Hiroyuki Yamamoto<hiro-y @ kcn.ne.jp> さんは書きました:
> 山本です。
<snip>
> 検討します。
> ただし、keep-aliveの値をアプリ側で変更するのは難しそうです。
> (Linuxの場合socket構造体をいじるという怪しい方法が出てきました)

この辺りは移植性を考えるとかなり辛い部分かと思います。

簡単に調べてみた限りでは、
・Windows2000以降の場合 (per socketで弄れるのは2000以降)
WSAIoctl関数にSIO_KEEPALIVE_VALSとtcp_keepalive構造体を渡す感じらしいです。
http://msdn2.microsoft.com/en-us/library/ms741621.aspx

・Linuxとその他少数の場合
sockoptにTCP_KEEPIDLEとかTCP_KEEPINTVLが簡単そうですが、
移植性のため非推奨とあります。

・Solarisの場合
socket optionでTCP_KEEPALIVE_THRESHOLDらしいです。(手元に無いので未確認)

各OSでばらばらな現状では、どの方法にして駄目な気が・・・

> > せっかくIDLEがあるのに、Keep-aliveというのも悲しい話なんですが...
>
> 無通信の場合、定期的にNOOPを送るというのもありかなという気がします。

機能的にはNOOPで充分だと思います。
嫌がるのはサーバ管理者ぐらいかな?
-- 
三浦


Sylpheed-jp メーリングリストの案内