Re: IPDATA構造体とLANについて ( No.1 ) |
- 名前:ライブラリ使用者 日時:2008/12/02 00:12
DXライブラリはまだ、V4を使用しているためです。
v6はそれほど浸透してない気も。。
対応は管理人様に頑張ってもらいましょう
クロスなりは、試したことないので分からないです。
共有フォルダ見れるということは、何らかのIP使ってるのでしょうから可能だとは思うです。
ちなみに今ネットに繋いでいますが、ルータでしょうか?それならばローカルIPで通信できます。
|
Re: IPDATA構造体とLANについて ( No.2 ) |
- 名前:wakahage 日時:2008/12/02 00:48
素速いご返答ありがとうございます。
> ちなみに今ネットに繋いでいますが、ルータでしょうか?それならばローカルIPで通信できます。
多分そうだと思います。壁>モデム>ルーター>各々PC だと思います。(機器とかもサッパリ)
しかし一応私の環境だけじゃなく、ゲームを起動したパソコン全てで動くようにしたいです。
追加質問させていただきますが、
LAN内のPCのローカルIPを自動で(ゲーム側で)知るにはどうすればいいですか?
書き忘れましたがレースゲームを作りたいと思っています。
|
Re: IPDATA構造体とLANについて ( No.3 ) |
- 名前:キーチック 日時:2008/12/02 13:46
GetNetWorkIP関数で分かるのではないかと思います.
|
Re: IPDATA構造体とLANについて ( No.4 ) |
- 名前:wakahage 日時:2008/12/02 17:48
相手がこちらのIPを取得しない限り、相手はこちらに接続を試みれないのではないでしょうか?
そうでなければ
GetNewAcceptNetWork();
の戻り値を GetNetWorkIP すればいいのですが。
|
Re: IPDATA構造体とLANについて ( No.5 ) |
- 名前:ライブラリ使用者 日時:2008/12/02 23:33
相手がこちらのIPを取得しない限り、相手はこちらに接続を試みれないのではないでしょうか?
そうです。
だから、相手にIPを教えるか配布するアプリに接続先となる自分のIPを埋め込むかの処理が必要です。
そして、相手からの接続要求を受けて相手のIPを取得します。
|
Re: IPDATA構造体とLANについて ( No.6 ) |
- 名前:wakahage 日時:2008/12/03 01:27
DXLIBに限らず、windows API とか使ってでもLAN内のIPを知る術は無いのでしょうか?
> 相手にIPを教えるか配布するアプリに接続先となる自分のIPを埋め込むかの処理が必要です。
これだとゲーム性が失われるといいますか、事務的といいますか、なんとなく腑に落ちないです...。
|
Re: IPDATA構造体とLANについて ( No.7 ) |
- 名前:通 日時:2008/12/03 18:27
>これだとゲーム性が失われるといいますか
どの様に失われるのでしょう?
>事務的といいますかなんとなく腑に落ちないです
少なくとも世に出ているネットワーク対応型の
ゲームで通信相手を特定せずに行っている物は
ないでしょう。
#例外はあるかもしれませんが。
必ずしも、配布するクライアントに
「ゲームで使用する相手の接続先」
がある必要はありません。
クライアントは別の場所から接続先を知ることが
できれば良いので、例えばオンラインゲームなどで
良くあるのが、チャンネルをつかったロビーサーバ
を用意しクライアントは一端そこに登録される事で
他のクライアントAがロビーサーバから接続する
別のクライアントBのアドレスを取得するという
事ができます。
この場合はクライアントにはロビーサーバの
アドレスを入れておけばOKです。
>windows API とか使ってでもLAN内の
>IPを知る術は無いのでしょうか
できないことはありませんが、
貴方のゲームがLAN内のどのPC上で動いているかも
特定せずに全てのPCに対してパケットを投げつける
ことになります。
更に投げつけた相手が貴方のゲームを起動している
という状況出なければなりません。
一番いいのはやはりロビーを用意するのが
いいでしょう。
|
Re: IPDATA構造体とLANについて ( No.8 ) |
- 名前:wakahage 日時:2008/12/03 19:07
何らかの形でロビーサーバが使えればいいのですが、そのようなものは何もありません。メールもヤフーです。
>どの様に失われるのでしょう?
確かに。ゲーム性は失われませんねw ゲームを配布(販売等)してユーザーが設定無しで使えるようにしたいのです。
>貴方のゲームがLAN内のどのPC上で動いているかも
>特定せずに全てのPCに対してパケットを投げつける
>ことになります。
>更に投げつけた相手が貴方のゲームを起動している
>という状況出なければなりません。
なにがまずいのでしょうか?返答の待ち時間を設定すればフリーズ等しないはずです。
話の流れからするとかなり面倒そうだと思いますが、
APIを使うならどうすればいいですか?
|
Re: IPDATA構造体とLANについて ( No.9 ) |
- 名前:Will 日時:2008/12/03 19:15
どのAPIを使用するかというような細かい話をする以前に、
ネットワークプログラミングの基礎について学ばれたほうがよろしいかと思います。
> 何らかの形でロビーサーバが使えればいいのですが、そのようなものは何もありません。メールもヤフーです。
そういうことについての知識がおありであれば、こういう回答にはならないでしょう。
|
Re: IPDATA構造体とLANについて ( No.10 ) |
- 名前:wakahage 日時:2008/12/03 20:21
>そういうことについての知識がおありであれば、こういう回答にはならないでしょう。
もしかしたら,smtp,pop3サーバをロビーサーバの代用とできないかな と思ったのですが、そもそも的外れのようですね(´・ω・`)
>どのAPIを使用するかというような細かい話をする以前に、
>ネットワークプログラミングの基礎について学ばれたほうがよろしいかと思います。
そうですよね。(他人に頼ってばかりじゃいかん!)
WinSockを利用してのソケットプログラ…ぐらいしかまだ分かりません。
とりあえず、今回はユーザーに設定してもらう形にしたいと思います。
今件で質問する内にだいぶネットワーク方面も詳しくなれたと自負しています。
又、ネットワークプログラミングの基礎について、ましになるよう努力しようと思います。
皆さん貴重なアドバイス等、本当にありがとうございます!
|
Re: IPDATA構造体とLANについて ( No.11 ) |
- 名前:通 日時:2008/12/04 00:04
>ゲームを配布(販売等)して
>ユーザーが設定無しで使えるようにしたいのです。
ならば素直にロビーサーバを作るべきだと思います
販売などを目標にするなら外部ネットワークに
出たときの事も考えると一番自然です。
>なにがまずいのでしょうか?返答の待ち時間を
>設定すればフリーズ等しないはずです。
それはあくまでもクライアントレベルでの話しです
・関係ないPCまで巻き込む
・ネットワークのトラフィックが上昇する
#このご時世に何をと思うかもしれませんが、
#結構いやな人は多いものです。
>smtp,pop3
それはサーバでもなんでもなく、
ネットワークプロトコルの一種で、
POP3サーバやSMTPサーバは、
「メールサーバ」です
>WinSockを利用してのソケットプログラ
これが十分理解できていればやり方の
検討くらいはつくとは思いますが、
今回ネックなのが、ただLAN内に存在するかどうかを
チェックすればよいということではない点です。
アプリケーションレベルでそれをやる場合は
UDPでブロードキャストかマルチキャストを
使って通信部分を書き通信相手が特定できたら、
それをつかってTCPで通信するということになります
アプリケーション階層ではどちらかといえば、
マルチキャストのほうがまだ推奨されていますが、
そのセグメントにあるマシンはすべて影響を
受けることに変わりはありません。
特別なAPIなどは特に存在しません。
すべてソケットに用意されている、
socket,bind,setsockopt,sendto,recvfrom
などを使って行います。
#どっちにしても、グループ用のIPを
#ゲーム内で持つことにはなりそうですが。
全部のIPに対して名前解決をしていって、
ホスト名が取得できたものについて、
もう一度接続しに行くってでたらめな方法も
ありますが。。。
|
Re: IPDATA構造体とLANについて ( No.12 ) |
- 名前:wakahage 日時:2008/12/04 09:41
度々ありがとうございます。
>ならば素直にロビーサーバを作るべきだと思います
>販売などを目標にするなら外部ネットワークに
>出たときの事も考えると一番自然です。
確かプロバイダーがKDDIだと5MBのftpサーバがもらえたと思うので、後々ロビー代わりにしようと思います。
技術的には可能でしょうか?
自分でドメインを登録したりとか手間が掛かりそうなので、なるべくそういうのを使いたいところです。
>アプリケーションレベルでそれをやる場合は
>UDPでブロードキャストかマルチキャストを
>使って通信部分を書き通信相手が特定できたら、
>それをつかってTCPで通信するということになります
まだ非接続型はよく分からないので、なんともいえませんが、
負担が大きいのならやめたいと思います。
一応仲間内で UDPをつかって通信相手を特定 を試してみたいと思います。
ところで無事グループとの接続が成立したとして、
各PCが他の全PCにデータを送るのと、ホストを決めて集中/分散させるのとでは、
どちらが一般的ですか?最大プレー人数は6人を想定しています。
|
Re: IPDATA構造体とLANについて ( No.13 ) |
- 名前:通 日時:2008/12/04 11:12
> ftpサーバがもらえたと思うので
> 後々ロビー代わりにしようと思います。
> 技術的には可能でしょうか?
FTPこれもプロトコルの一種です。
(File Transfer Protocol)
FTPサーバとは一般的にファイルサーバの事を
指します。
ロビーサーバの代用云々以前の問題で、
物が全く別物です。
ロビーサーバとは自分のクライアント・
アプリケーションが接続しに行く為の
サーバなので、立てる場所は自分のPCでなくても
良いですが、サーバアプリは自分で作る必要が
あります。
> 全PCにデータを送るのと、ホストを決めて集中/分> 散させるのとでは、どちらが一般的ですか?
同一LAN内という制約があるならば、
ゲームなどでは間違いなく後者のホストを
決めて他のノードに繋いでもらう方法です。
#簡易的なアプリケーションでは接続先の入力は
#否めないかと思います。
先の話にホストを決めて集中・分散とありますが、
ロビーはこのホストのみにあたるプログラムです。
なので後者で作っておけば、ロビーサーバを作成
するのにそれほど困ることは無いと思います。
>自分でドメインを登録したりとか手間が掛かりそう
確かに面倒ですが、ツールと無料DDNSを使用すれば
サーバを公開する事ができます。
(ルータにもよりますが。。)
|
Re: IPDATA構造体とLANについて ( No.14 ) |
- 名前:Will 日時:2008/12/04 10:09
ftpサーバはどこまでいってもftpサーバですよ。
> 5MBのftpサーバがもらえたと
これは、FTPサーバのうち5MBの領域を使わせてくれるってだけで
FTPサーバを違うものに作り替えていいってわけじゃないと思うけど(^^;
表面的な名前ばかりの知識があっても、根っこの部分でかなりの勘違いをしておられると思います。
> 各PCが他の全PCにデータを送るのと、ホストを決めて集中/分散させるのとでは、
> どちらが一般的ですか?最大プレー人数は6人を想定しています。
ソフトのつくりに依存するのでケースバイケースとしか…
|
Re: IPDATA構造体とLANについて ( No.15 ) |
- 名前:wakahage 日時:2008/12/04 12:12
私、勘違いしていました。ロビーサーバはIPなどの情報を保存しておくものではなく、
それに加え管理する機能を備えたものだったのですね。というよりサーバーとはそう言うものですよね。
勝手に思い込んでいました。誠に申し訳ありません。勉強不足です。
>サーバアプリは自分で作る必要があります。
よくサーバをメンテナンスする人はLINUXをどうこう と言ってますよね。ハード面でもソフト面でもそこまで時間がないので、仰られる通り接続先を入力してもらいます。
>表面的な名前ばかりの知識があっても、根っこの部分でかなりの勘違いをしておられると思います。
ここ2,3日でいろいろ詰め込んだので、こうなってしまいました (_ _); ルーターもよく分からなかったですので。
本件とは異なる質問にもお付き合いいただき、感謝します。
早くあなた方の様になれるよう、しばらく頭を整理したいと思います。
これ以上DXLIBからそれた話をするのは板違いだと思いますので、別のところで質問したいと思います。
もし私を見かけたらその時は宜しくお願いします。
|