« 【よみもの】もーりおのつぶやき 第27回 | メイン | 【講座】HSPよく使うフレーズ 第40回 »

2008年04月02日

【講座】「教えて!おにたま!!」

<フルカワ さんからのおたより>

P2P通信のゲームを作るうえ(というより、遊ぶうえ?)で、
どうしてもネックになるのは、ホストを立てるときのポート開放で、
ルーターを利用してネットに繋がっているパソコンでは、
ポートが開放できず、ソケットが接続できません。
ただ、最近のルーターでは、UPnPに対応していて、UPnPを利用
すれば、いちいちルーターの設定を行わずに、簡単にポートが
開放することができると聞きました。
そこで、HSPからUPnPを利用する方法を、教えていただけないで
しょうか?

<こたえ>

お便りありがとうございます。
いきなりハイレベルな質問ですね。通信に詳しくない人には
聞いたことのない用語が出てきて驚くかもしれません。

ネットゲームに限らずインターネット上でデータを交換する場合、
接続の方法で色々と苦労することになります。
これは、主に繋げられる側に要因があります。
たとえば、普通にホームページをブラウザで表示できているのは、
ネット上のサーバーに繋いでページのデータを取得しているから
です。これは、誰でも繋げることのできる場所(これはネット上で
グローバルアドレスを持った場所とも言います)にサーバーが
あるためです。
しかしながら、P2Pの場合や個人でネットゲームを作ったりした
場合には、誰でも繋げることのできる場所はなかなか用意する
ことができません。自分の家をサーバーにしようとしても、
個人で繋いでいる環境はルーターがあったり、IPアドレスが変化
したりといった理由で外からの接続がしにくいのです。
(逆にセキュリティの面では、これは良いことでもあります。)
UPnP(Universal Plug and Play)を使うことで、個人の家から
他の人が繋げやすくするための準備を行なうことができます。

ただし、これはルーターが機能に対応している必要があり、
すべての環境で動作することを保障するものではありません。
そして、この機能によって外からの接続が可能になった場合でも、
最初に接続先を提供するための仕組みを用意してあげないと、
どこに繋げばいいかわからなくなります。

で、質問の件ですが、HSPの標準パッケージでは用意されて
いませんが、以下のURLで公開されているpcbnet2プラグインが、
UPnP NAT Traversalの機能を持っています。
既に開発が終了しているプラグインですが、参考にしてみると
いいと思います。

pcbnet2
http://www.pcbsoft.net/for-hsp-users.html

なお、中央のサーバーが集中してデータを管理する方法
(ユーザーのマシンはサーバーに繋ぐだけ)であれば、上のような
心配はいりません。HSP関連のサービスである、O2システムなど
はこれに該当するため、誰でも接続して遊ぶことが可能です。

それでは、またまた。HSPに限らず、PCのコトや
プログラミング関係どんなことでもお便り待っていますね。

(おにたま)

投稿者 usuaji : 2008年04月02日 01:20

口臭チェッカー市場