トップページ > 過去ログ > 記事閲覧
通信のDebug確認
名前:ライブラリ使用者 日時: 2007/10/27 16:03

連投になりますが、別スレッドで質問させてください。 ConnectNetWork()のリファレンスに、 LANやインターネット等で繋がっている他のマシン と通信状態を確立します。 とありますが、1台では確認できないでしょうか? (送信、受信に同じマシンを使用。別アプリ使用という条件です) 現状、ConnectNetWork()で落ちてしまい確認のしようがない状態です。 ※受信側では勿論、PreparationListenNetWork()しております。

Page: 1 |

Re: 通信のDebug確認 ( No.1 )
名前:ライブラリ使用者 日時:2007/10/27 17:04

 もう少しだけ、情報補足 知り合いに頼んで確認しましたが、やはりConnectNetWork()でエラーになってしまいます。 OS:XP+SP2 ファイアウォール有効 例外:作成したアプリを追加 詳細設定:全不許可  エコー要求の着信くらいは許可しないといけなど、あるのでしょうか? (おそらくアプリでなく、OS・ネットワーク設定側に何か問題があると思っているんですが・・ ご助言ヨロシクお願いします。
Re: 通信のDebug確認 ( No.2 )
名前:優柔不断 日時:2007/10/28 10:31

それはDXライブラリの重複起動制限がかかっているのでは? 確か重複起動を許可できるようになる関数があるはずです。しかし、それで解決するかどうかは地震ありません。
Re: 通信のDebug確認 ( No.3 )
名前:ライブラリ使用者 日時:2007/10/28 12:42

サイトへのリンク貼れないのね(書いたのが全部消えた。。。 お返事ありがとう御座います。 >優柔不断 重複起動の件もなんとかしたいですが、まずは接続失敗する件を先に解決したいと思っております。 (最悪はPCもう1台用意でなんとかなる問題ではあると思いますから こちらでも接続失敗する件、もう少し確認しましたのでそちらの報告を。 ・ルータにて10001番が開放されていませんでした。  →開放して、TCPポートスキャンを確認できるサイトにて接続を確認しました。 ・ConnectNetWork()時のパケットを撮ってみました。  見れる方参考にして頂ければと思います。  (自分は分かりません^^; ※同じPCで確認しています。 ※DxLib固有でつくという先頭ヘッダは付加されています(デフォルトのまま 最初の送信データ パケットデータ(000001) *.*.*.*の10001番ポートへの送信データ チェックサム(164D) Tcp 45 00 00 30 E6 65 40 00 80 06 4D 16 C0 A8 01 02 3B 92 CA 0F 06 AD 27 11 75 AB 0E F9 00 00 00 00 70 02 FF FF 09 71 00 00 02 04 05 B4 01 01 04 02 70 02 FF FF 09 71 00 00 02 04 05 B4 01 01 04 02 E..0.e@...M.....;.....'.u.......p....q.......... 最初の受信データ パケットデータ(000002) *.*.*.*の1709番ポートへの送信データ チェックサム(D8C2) Tcp 45 00 00 28 F3 AB 00 00 3D 06 C2 D8 3B 92 CA 0F C0 A8 01 02 27 11 06 AD 00 00 00 00 75 AB 0E FA 50 14 00 00 36 21 00 00 50 14 00 00 36 21 00 00 E..(....=...;.......'.......u...P...6... 1点だけ気になったのが、受信時のポートは10001番と送受信で同じポート番号を使うものではないのかな? 長々と記載してしまいましたが、ご助言よろしくお願いします。
Re: 通信のDebug確認 ( No.4 )
名前:mas 日時:2007/10/28 14:28

もしかして ConnectNetwork の接続先にルータのグローバルIPアドレスを指定してませんか? 基本的にローカルのマシンからルータのグローバルIPへは接続できません。 ルータによってはうまく誤魔化して接続できるようなものもあったかと思いますが…
Re: 通信のDebug確認 ( No.5 )
名前:ライブラリ使用者 日時:2007/10/28 19:59

>masさん ご指摘の通り、グローバルIPを指定していました。 プライベートIP指定することでConnectNetWork()通ることができました。(ありがとう御座います。 その結果を踏まえて、いくつか試してみたのですが、ローカルでやる場合はこれで問題なかったのですが(Debugには問題ないです)、実際にインターネットを使用しては同様に受信側に反応すらありません。 (これは友人にアプリを渡し確認してもらっています) 1)○:PC(A)→ルータ→PC(A) 2)×:PC(B)→WWW→ルータ→PC(A) PC(A)が私、PC(B)が友人です。 この手段はローカルで確認する場合でしょうか? プライベートは192.168.x.xですので、インターネット上から見つける理屈がよく分かりません。 ちなみに2)の方法が、グローバルIPだろうと、プライベートIPを指定しようとうまくいかない状態です。
Re: 通信のDebug確認 ( No.6 )
名前:ライブラリ使用者 日時:2007/10/28 20:15

再度確認しまして、 2)の方法をグローバルIP指定でConnectNetWork()通過できました。 ありがとう御座います。 (現状受信データをうまく変換できない状態ではありますが、目処は立ちました。
Re: 通信のDebug確認 ( No.7 )
名前:管理人 日時:2007/11/02 02:49

重複起動については、DxLib_Init 関数の前に以下の関数に TRUE を渡して 呼んでおくことで可能となります。 // 多重起動を許すかどうかのフラグをセットする extern int SetDoubleStartValidFlag( int Flag ); 宜しければお使い下さい。 (考えてみれば2個以上の起動も考えられるのに Double って変ですね orz)
Re: 通信のDebug確認 ( No.8 )
名前:ライブラリ使用者 日時:2007/11/03 01:16

回答ありがとうございます。

Page: 1 |