TCP/IPソケット通信で質問します。
一度connectしたら常時接続のままという使い方をしてるんですが、
通常サーバ − クライアントどちらかでソケットcloseすると切断を検出出来ると思うんですが、
相手がcloseしないでリブートなどを行うと切断検出できません(無効となったソケットを維持)

プログラムから一定間隔でping通信する
1通信毎にセッションを閉じる(頻繁に通信が発生するのであまりやりたくない)
空の電文を常時やり取りして生存を確認する

もっとほかに断検出する良い方法があったら教えて下さい