ポートをリッスンする小さな TCP サーバーがあります。デバッグ中は、プロセスを強制終了するためにサーバーを CTRL-C するのが一般的です。
Windows では、サービスをすばやく再起動でき、ソケットを再バインドできます。Linux では、bind() が成功するまで数分待たなければなりません
bind() が失敗すると、errno=98、使用中のアドレスが返されます。
実装の違いをよりよく理解したいと思います。Windows は確かに開発者にとってより友好的ですが、Linux が「間違ったこと」をしているとは思えません。
私の推測では、新しいソケットの作成を許可する前に、考えられるすべてのクライアントが古いソケットが壊れていることを検出するまで Linux が待機しているということです。これを行う唯一の方法は、タイムアウトするのを待つことです
Linux での開発中にこの動作を変更する方法はありますか? Windowsがこれを行う方法を複製したいと思っています