TcpIPプログラミングで、ホスト名による接続を行おうとするとSocketExceptionが発生する問題
- 題名: TcpIPプログラミングで、ホスト名による接続を行おうとするとSocketExceptionが発生する問題
- 著者: nissa.com
- 日時: 2004/06/23 1:57:39
- ID: 4521
- この記事の返信元:
- この記事への返信:
- ツリーを表示
- 題名: Re[1]: TcpIPプログラミングで、ホスト名による接続を行おうとするとSocketExceptionが発生する問題
- 著者: nissa.com
- 日時: 2004/06/23 2:03:03
- ID: 4523
- この記事の返信元:
- この記事への返信:
- ツリーを表示
- 題名: Re[1]: TcpIPプログラミングで、ホスト名による接続を行おうとするとSocketExceptionが発生する問題
- 著者: ぺがらぼ(ペガサス研究室)
- URL: http://pegalabo.net/
- 日時: 2004/06/25 15:29:23
- ID: 4579
- この記事の返信元:
- この記事への返信:
- ツリーを表示
- 題名: Re[2]: TcpIPプログラミングで、ホスト名による接続を行おうとするとSocketExceptionが発生する問題
- 著者: nissa.com
- 日時: 2004/06/26 12:41:19
- ID: 4586
- この記事の返信元:
- この記事への返信:
- ツリーを表示
分類:[.NET]
C#でTcipIPネットワークプログラミングを作っています。
接続方法は、
まずIPHostEntry型の変数hostを作成し、
そこにDns.Resolve(Address)メソッドの返り値を代入します。
Addressは、ホスト名またはIPアドレスを示すstring型変数です。
その後、host.IPAddressList[0]と、ポート番号を基にIPEndPoint型変数ipEPを作成し、
TcpClient型変数tcpCのconnectメソッドを作成したipEPを引数に呼び出すというものです。
Addressが、IPアドレス、"192.168.0.1"のような形式だと上手くいくのですが、
Addressがhost名、"hoge.hogehoge.hoge.co.jp"のような形の場合、
Dns.Resolve(Address)の返り値をhostに代入しようとした段階で、
以下のような例外がスローされてしまい、うまくいきません。
SocketException:
要求した名前は有効で、データベースにありますが、解決された正しい関連データがありません。
Dns.Resoleveの使い方が悪いのかと思い、
TcpClient tcpC = new TcpClient("hoge.hogehoge.hoge.co.jp",12345);
のように、直接ホスト名を打ち込んでデバッグしてみましたが、
やはり同じ例外がスローされてしまいます。
しかし、IPアドレスで指定すると、
うまく接続が完了できます。
MSDNで発生するSocketExceptionやDns.Resolveメソッドを調べてみたのですが、
どうも要領を得ません。
解決策や、ヒントなどを知っている方、思いつかれた方は、
何卒ご助力をお願いします。