• ベストアンサー

C# ソケット通信で相手に送信できるか事前にチェックする方法

C# ソケット通信で相手に送信できるか事前にチェックする方法 いつもお世話になっております。 チャットのようなプログラムを作ろうと思い、ソケット通信のやり方を勉強しているのですが、どうしてもできないことがあります。 IPアドレスとポートを指定して、その相手先と通信できるかどうかをタイムアウト以外で知る方法です。 また、今回はサーバーを立てずに同じLAN内であればやり取りできるようにしたいと思っています。 できればLAN内の端末すべてに送信といったこともしたいのですが、TCPではできないのでしょうか。 分かる方がいましたらお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • nda23
  • ベストアンサー率54% (777/1415)
回答No.1

>タイムアウト以外で知る方法 あっても無駄です。 何故かと言うと、調べた時OKでも、次の瞬間NGに なる可能性があるからです。結局はタイムアウトに なります。そうであるなら調べるだけムダでしょ。 だから無いのですよ。 通信に限らず、ネットワークだとか多重プロセスの 下でのプログラムでは「事前調査」を行う意味は 殆どありません。 >LAN内の端末すべてに送信 1ヶ所ずつ送信します。 LANに繋いでいるマシンの取得は幾つか方法があり ますが、VB.NETの例は下記を参照してください。 C#でも同じオブジェクトが使えます。 http://okwave.jp/qa/q6060499.html これも、調べた時と実際に送信する時で条件が変化 する可能性があります。何時、シャットダウしたり、 立ち上げるか分かりませんからね。

tasoh
質問者

お礼

回答ありがとうございます。 なるほど、確かにその通りです・・・ ログイン状態とかをチェックしたかったのですが UDPで送るだけ送っとく方法で対処することにします。 マシンの取得方法、参考にさせて頂きます。 ありがとうございました。

関連するQ&A