HSPポータル
サイトマップ お問い合わせ


HSPTV!掲示板


未解決 解決 停止 削除要請

2010
0626
息子3人以上でチャット6解決


息子

リンク

2010/6/26(Sat) 18:49:49|NO.33443

質問ばかりですいません。

ぼくは、会話だけ出来る仮想世界を作っています。
ですが、いくら検索しても3人以上でチャットする方法が載っていません。
2人でのチャット方法は下記を参考に何とかできました。
http://hsp.tv/play/pforum.php?mode=pastwch&num=13619
どなたか3人以上でチャットする方法をご存じですか?



この記事に返信する


mixwater

リンク

2010/6/26(Sat) 19:54:18|NO.33444

サーバーを立てて、そこにアクセスさせればいいんでね?



Sucret

リンク

2010/6/26(Sat) 20:41:33|NO.33445

二人でのチャットが出来たのでしたら多人数にするのも割と簡単だと思いますよ?

リンク先の内容からHSPSOCKを使用しているのですよね?

HSPSOCKの命令のヘルプを見るとipget以外の命令にソケットID番号というものがありますよね?
ここには0から31までの数値を指定でき、それぞれの番号ごとに別々の通信を行うことができます。

変な例えですが、ソケットID番号を糸電話の紙コップと考えてください。
そうすると紙コップが32個あることになります。
次にsockmake、sockopen命令で相手と接続を行いますが、これをお互いの紙コップに糸を繋ぐと考えてください。
これで接続が完了した場合、糸電話での会話、つまり通信が出来るわけです。
しかしここで使った紙コップは1つだけですので別の紙コップも使用することができます。
ここで注意ですが、同じ紙コップには1本しか糸を引くことができません。同じソケットID番号で別々の人と接続はできないということです。
よって実質32人と接続、自分を含め33人でチャットができるわけです。

以前私も多人数チャットを作ったことがあるのですが、そこで幾つか気づいた事をあげようと思います。

・ソケットID番号はサーバとクライアントの番号が同じである必要はありません。(ポート番号は必ず同じである必要があります)
・同じポート番号は同時に使用することはできません。
 例えばポート番号49152番で誰かと接続できた場合、次は49153番など、別のポートを使用する必要があります。
・クライアントがサーバに送ったデータに関してはサーバはそれを受け取るだけです。
 複数のクライアントが存在する場合、サーバはクライアントから受け取ったデータを全クライアントに送信してあげる必要があります。
 サーバの名の通りの作業です。
・サーバはログイン用のポートを作成しておくとユーザにとって接続が楽になります。
 サーバはログイン用ポートに接続があったら「君は何番のポート番号で接続してね」というメッセージを送り、
 ログイン用ポートはすぐに切断、相手に指定したポート番号で自分もソケットをサーバとして初期化すればいいわけです。
 そうすれば全員に「IPアドレスはxx.xx.xx.xx、ポート番号はXXXXXでお願いします」と伝えるだけでいいことに成ります。
 逆にログイン用ポートを作成しないと
 「Aさんはポート番号XXXXXで、Bさんはポート番号YYYYYでお願いします。IPアドレスはxx.xx.xx.xxですよ」
 と個別にポート番号を教えなくてはならなくなりますので面倒かと思われます。
 ちなみにタイムラグ等もありますので、相手に使用するポート番号を教える直前にそのポート番号でソケットを初期化しておくことをお勧めします。

今でも無駄の多いプログラムしか組めない私の考えですので、参考になるかどうかはわかりませんが
少しでもお力添えできれば幸いです。頑張ってくださいね。

長文失礼いたしました。



koss

リンク

2010/6/26(Sat) 21:02:30|NO.33446

私は多人数チャット等を作るときはpcbnet2というプラグインを使用しています。



息子

リンク

2010/6/26(Sat) 21:47:18|NO.33447

皆さん本当にありがとうございます。
特にSucretさん、とてもわかりやすく書いていただいてありがとうございます。
皆さんのアドバイスを参考にして、もう一度取り組んでみます。



ORZ

リンク

2010/6/27(Sun) 01:50:09|NO.33450

HSPSOCKとPcbNet2を比べたけど間違いなくPcbNet2のほうが便利だYO!



息子

リンク

2010/6/27(Sun) 14:08:22|NO.33458

ありがとうございます。
今はHSPSOCKでがんばってみます。
でも、HSPSOCKが出来たら、PcbNet2もがんばってみようと思います。
ORZさんのように比較できるようになれば、もっと楽しめそうです。



ONION software Copyright 1997-2021(c) All rights reserved.