「開放」 と 「解放」――。
プログラミングのことについて書くのに関連して、しばしばこの2つの言葉の使い分け方が話題になったりします。
この2つの言葉は意味もよく似ています。(なので迷うくらいの状況ではどちらでもOKだと思います。)
自分としては、ニュアンスで使い分けています。つまりは、文字から感じ取れる勝手なイメージでです。
さて、同じ意味として考えてきた2つの言葉ですが、ある問題にぶつかったときに2つの言葉を使った例文が浮かびました。
開放ポートを解放するにはどうすればいい?
それぞれ異なった意味になっているナイスな例文だとちょっぴり自画自賛しています。
例文自体の意味、ぶつかった問題の内容とはこういうことです。
使われていないポートのエンドポイント(変数名:localEndPoint)とソケット(変数名:serverSocket)があります。
バインドさせます。 (serverSocket.Bind(localEP);)
接続要求を待機します。 (serverSocket.Listen(適当なbacklog); serverSocket.Accept(...); )
通信終了後、閉じます。 (serverSocket.Close();)
再び同じことを行います。
ローカルのエンドポイントにバインドしたソケットはきちんと終了処理をしています。
しかし直後に同じポートで監視しようとすると失敗します。
時間を空ければできるので、使用できるまで待って処理を進めるいい方法はないでしょうか?
ポートを開きっ放しにしておけば楽という意見もが出るかもしれませんが、テストなので避けて通れません。