GJAX IS UNDER CONSTRUCTION! (※日本語ブログ)

Please wait a minute for GJAX/2008

ホーム 連絡をする 同期する ( RSS 2.0 ) Login
投稿数  171  : 記事  0  : コメント  391  : トラックバック  50

ニュース

今後のスケジュールについて

予定なし

インフォメーション

わんくま同盟メンバ ブログ トップ

ブログタイトル(July 2007~)
GSP.NET GJAX!
【読み方:じーえすぴーどっとねっと/じーじゃっくす】
【サブ:~ A C# programmer dives into ASP.NET! ~】

ASP.NET AJAXと違って、GSP.NET [ghost_shell's (web) pages & .NET]の部分が正式名称、GJAX!の部分が省略形・俗語となっています。

過去のブログタイトル
【表記:ウェブ100】
【読み方:うぇっぶいちまるまる】
【サブ:.Net & Webに てん ぜろ】

書庫

日記カテゴリ

「開放」 と 「解放」――。

プログラミングのことについて書くのに関連して、しばしばこの2つの言葉の使い分け方が話題になったりします。
この2つの言葉は意味もよく似ています。(なので迷うくらいの状況ではどちらでもOKだと思います。)
自分としては、ニュアンスで使い分けています。つまりは、文字から感じ取れる勝手なイメージでです。

さて、同じ意味として考えてきた2つの言葉ですが、ある問題にぶつかったときに2つの言葉を使った例文が浮かびました。


開放ポートを解放するにはどうすればいい?


それぞれ異なった意味になっているナイスな例文だとちょっぴり自画自賛しています。

例文自体の意味、ぶつかった問題の内容とはこういうことです。

使われていないポートのエンドポイント(変数名:localEndPoint)とソケット(変数名:serverSocket)があります。
バインドさせます。 (serverSocket.Bind(localEP);)
接続要求を待機します。 (serverSocket.Listen(適当なbacklog); serverSocket.Accept(...); )
通信終了後、閉じます。 (serverSocket.Close();)
再び同じことを行います。

ローカルのエンドポイントにバインドしたソケットはきちんと終了処理をしています。
しかし直後に同じポートで監視しようとすると失敗します。
時間を空ければできるので、使用できるまで待って処理を進めるいい方法はないでしょうか?
ポートを開きっ放しにしておけば楽という意見もが出るかもしれませんが、テストなので避けて通れません。

投稿日時 : 2008年8月14日 16:01

コメント

# re: 開放 と 解放 2008/08/15 0:06 出水
bindする前に
serverSocket.SetSocketOption(SocketOptionLevel.Socket, ocketOptionName.ReuseAddress, true);
というおまじないを入れておくといいかもしれないです。

# re: 開放 と 解放 2008/08/15 0:09 出水
あう、ミス
serverSocket.SetSocketOption(SocketOptionLevel.Socket, SocketOptionName.ReuseAddress, true);
うまくいかなくっても恨まないでね…ただの予感なので

# re: 開放 と 解放 2008/08/15 10:17 ghost_shell
コメントありがとうございます。

深刻な悩みではないので、気楽な感じで試してみます。
あとC++ Dayのセッション期待しています。

# re: 開放 と 解放 2008/08/15 12:01 ghost_shell
おぉ~~~!!
効果テキ面でした。
モヤモヤさせる例外が一掃されました。
これだけでよかったなんてSocketOption(WinSock)については知っておくといいことがいろいろ眠っていそうです。(MSDNによる解説希望!)

SocketOptionName 列挙体 (System.Net.Sockets)
http://msdn.microsoft.com/ja-jp/library/system.net.sockets.socketoptionname.aspx

できたのはいいけど、副作用とかは無いのだろうか?
初期化にかかる時間が遅い?? と確かめていない適当なことが口をついて出てしまいます。

# re: 開放 と 解放 2008/08/15 22:54 出水
おお、正解だった!!
開放ポートが解放されない事に関しては"TIME_WAIT"あたりでぐぐってもらうとして…

おまじないは、そのTIME_WAITの時間であっても無視します
無視するだけだから時間はあまり変わんないんじゃないかしら

>横浜
期待しちゃだめ ><

Post Feedback

タイトル
名前
Url:
コメント: