地方エンジニアの学習日記

興味ある技術の雑なメモだったりを書いてくブログ。たまに日記とガジェット紹介。

FINじゃなくRSTで通信を終える

stackoverflow.com

Turn the SO_LINGER socket option on and set the linger time to 0 seconds. This will cause TCP to abort the connection when it is closed, flush the data and send a RST. See section 7.5 and example 15.21 in UNP.

SO_LINGERを指定してtimeoutを0にすればsock bufにデータがあろうがRSTで通信を終えることができる。さらにTIME_WAITが増えることもなくなる。LAN内とかで絶対に遅延しないみたいな環境なら有効なのだろうか...実験とかに使う分には重宝しそうだけど。