Socket通信でBindできなくなった

表題の通りで、

ソケット通信を利用したく、

何度も、bindをおこなっていたら、

突然「address already in use」が出るようになり、

アプリを再起動しないと再接続ができなくなった。

色々と調査していると、

CLOSE_WAITやらTIME_WAITなどがのキーワードが出てきて、

なんか、開放されるまでに時間がかかるとの事

えー。 とおもってもう少し調査していると。

SO_REUSEADDR を bind する前にセットすれば、可能になるとの事。

setsockopt(s,SOL_SOCKET, SO_REUSEADDR, (const char *)&yes, sizeof(yes));

これね。

まとめると、 bindする前に、おまじないを書く。これだけ。

いやー、ハマった、ハマった。

下記はその時にBindまで記載したサンプルコードです。

ここから先は

269字

¥ 100

サポートありがとうございます。 励みになります。