プログラムが終了するときはOSがFINとか送ってくれるけど、途中でLANケーブル抜けたときとかはどうにもならないので 自分で切断を検知する必要がある。キープアライブを使って切断を検知する。 int option = 1; setsockopt( sd, SOL_SOCKET, SO_KEEPALIVE, (void*)&option, sizeof(option) ); デフォルトでは切断検知まで 2時間11分15秒。 2時間とか待ってると日が暮れるので、これをせめて3分とかにする int option = 1; setsockopt( sd, SOL_SOCKET, SO_KEEPALIVE, (void*)&option, sizeof(option) ); option = 60; setsockopt( sd, IPPROTO_TCP, TCP_KEEPIDLE, (void*)&