- - PR -
Socket.Exceptionでハンドルされていない例外
投稿者 | 投稿内容 | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2004-01-09 11:55
諸農さん、だっめっすよ。これだと「MSDN Liblary Oct.2003」をインストールしていないと見られないっす。 〜〜〜〜〜 で、VS.NET2003の環境だと、「2003OCT」を、「2003FEB」にすれば、一応表示できました。目次では、次のルートをたどってください。 MSDNライブラリ→ネットワークおよびディレクトリサービス→ネットワークおよびディレクトリサービス→Networking and Directory Services (英語)→Network Protocols→Windows Sockets→SDK Documentation→Windows Sockets 2→Windows Sockets 2 API→Winodws Sockets API Reference→Window Sockets Error Codes #スペルミスごめん 「Platform SDK: Windows Sockets 2」 [Windows Sockets Error Codes] これがトピックタイトルなので、これで検索すれば、見つかるんですけどね。 で、デバッグは、「Dns.GetHostName」のある行の左の方、IDEの境界線あたりの余白をクリックすると、標準では赤い?(変えてるのでわからない)●がつきます。そうやっておいて実行すると、この場所で止まります(ブレークポイント)。止まったら、"GetHostName"あたりにマウスカーソルを移動すると、ヒントとして現在の値が出てきます。もし見られないなら、「Dns.GetHostName」を選択して右クリック、「クイック ウオッチ」。おそらく、自ホストの名称が出てきますよ。 #つうか、わからなかったらMSDNを見ましょう。 #本は「作者」によってかえられていますから、マニュアルを参照しましょう →ローカル コンピュータの DNS ホスト名を格納する文字列。 ↑ということは、Dns.GetHostByName(ホスト名).AddressList ↑ちゃんとMSDN見てから使ってね [ メッセージ編集済み 編集者: Jitta 編集日時 2004-01-09 11:55 ] | ||||||||||||
|
投稿日時: 2004-01-09 14:53
諸農です。
申し訳ないです。Jittaさんからもコメントがあるように、 先のアドレスはインターネットのアドレスではなく、ローカ ルコンピュータにインストールした、MSDNのアドレスです。
初めてのプログラミングでは、自分でコードを書くということを厭わないことです。 たくさん、自分でコードを書いて、たくさんの無駄なプロジェクトを作ってみるのも 一つの勉強方法だと思います。 ※ここでいうプロジェクトは、仕事でのプロジェクトではなく、 IDE上でのプロジェクトです。 今回の場合、デバッグ確認するためのプログラムプロジェクトを作ってみるのも 一つの解決策かもしれません。 C#で申し訳ないですが、フォームにボタンとリストボックスを貼り付けて 実行状況を確認するコード(プログラムプロジェクト)を作成しました。
これで、リストボックスに実行状況が表示されます。 例外発生時にメッセージボックスが表示されます。 こういったプロジェクトを作成すればデバッグがしやすくなります。 デバッグについてはこれからもいろいろと模索してください。 私もまだまだ模索中です。 上記の実行環境はXP PRO で、FTPサービスが可動中です。 #ちなみに、前回アップされていたコードではFTPポートを 指定しませんから、Dnsの問題が解決できても、多分ですが、 引き続きエラーが発生することになります。 ではでは(^^)/ _________________ 諸農和岳 Powered by Turbo Delphi & Microsoft Visual Studio 2005 十兵衛@わんくま同盟 http://blogs.wankuma.com/jubei/ | ||||||||||||
|
投稿日時: 2004-01-09 14:55
こんにちわ。諸農です。
す、すみませんです で、詳細なフォローアップありがとうございますm(__)m _________________ 諸農和岳 Powered by Turbo Delphi & Microsoft Visual Studio 2005 十兵衛@わんくま同盟 http://blogs.wankuma.com/jubei/ | ||||||||||||
|
投稿日時: 2004-01-09 19:54
>jittaさん
ありがとうございます! 私の環境でも、2003FEBに変更したら表示されました 英語……とりあえず、頑張ってこれに目通してます。 後、デバッグですが。 指定の行にブレークポイントを設定して、デバッグ、クイックウォッチをしてみたのですが 名前:Dns.GetHostName 値:式を評価できません と返されました。 >jubeiさん そうですね。 初歩的なところから出直して、色々とプログラム書いて 勉強してきた方がいいと痛感してます。 ただ、市販で出てる本のサンプルがそんなにバグだらけはないだろうと思っていたのと せっかく買った本の内容が間違いだった…と言うのが微妙に悔しくて。 とりあえずこの本は置いといて、違う方法で勉強した方がいいかなとも考えていますが あー…それも悔しいなぁ… とりあえずErrorCodeを確認し次第、追って書き込みします。 | ||||||||||||
|
投稿日時: 2004-01-09 21:48
どうでもいいですが、そうなんですか? いや、ちょっと… | ||||||||||||
|
投稿日時: 2004-01-09 22:28
なけなしの2500円払って買った本に誤謬が普通にあるってのは…
ちょっと悔しくありません? おかげで、ここでいい勉強させてもらいましたが。 | ||||||||||||
|
投稿日時: 2004-01-09 23:03
諸農です。
ちょっとおかしくありませんか? もともと、対象となっている書籍はVB.NET2002を対象に書かれているものですよね? サンプルコードをダウンロードして「VS2002」で試してみましたが、 なんら問題なく実行できましたよ。 「vbnetip\2\203\WindowsApplication203」のプロジェクトです。 FCL1.0のSocket接続とFCL1.1のSocket接続では、処理シーケンスの仕様が 変更になっています。 つまり、1.0ではローカルマシンのエンドポイントとリモートマシンのエンドポイントの 両方が必要であるのに対し、1.1のBind()メソッドの説明を読めばわかりますが、 1.1ではConnect()を呼び出すのみになっています。 御気楽堂さんがサンプルコードから引っ張り出してきた部分では、 もともとのサンプルコードにあった「リモート側のIPアドレスを保持しているプロパティ」 から取得するリモートのエンドポイント取得の部分が欠落していたのと、1.1のドキュメ ントに記載されている内容をちゃんと読んでいないところから、このような事態になって いるのだと思われます。 私も技術書を出したりしているものですから、 自分の落ち度を棚に上げて、一方的に書籍、およびサンプルコードを「バグ扱い」する姿勢 には、少なからず怒りを覚えます。 こんな発言、著者に対してすこぶる失礼なことではありませんか? 人のコードをバグ扱いできるぐらい、あなたはこのサンプルコードのすべてに 目を通し、すべてのコードの内容を把握したのですか? 前言の発言である「バグ」云々は撤回していただきたいです。 著者および出版社の名誉復活のために尽力してください。 よろしくお願いします。 _________________ 諸農和岳 Powered by Borland Delphi/C++Builder & Microsoft VS.NET [ メッセージ編集済み 編集者: Jubei 編集日時 2004-01-09 23:16 ] | ||||||||||||
|
投稿日時: 2004-01-10 10:42
>Jubeiさん
すいません、失礼な発言でした。 勉強しなおして、このサンプルコードを理解し、 動かせるようになったらまたお邪魔します。 |