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
サポートありがとうございます。 励みになります。