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


HSPTV!掲示板


未解決 解決 停止 削除要請

2007
0128
アキスhspsockにおける配列変数の送受信5解決


アキス

リンク

2007/1/28(Sun) 08:14:34|NO.5257

いまhspsockを使ってオンラインゲームを作ろうとしているのですが、
配列変数の送受信を行いたいのですが、
どのようにすれば配列の送受信が出来るのですか?
だれかご教授お願いします。



この記事に返信する


93

リンク

2007/1/28(Sun) 10:23:45|NO.5263

まず思いつくのは配列をCSVのような感じでパケットに載せることです。

buf(0) = "あ"
buf(1) = "い"
buf(2) = "う"
buf(3) = "え"
buf(4) = "お"

これをパケットルールを作って配列は","で分けるとか決めます。

SendCmd (_SET_+_LEN_), (buf(0)+","+buf(1)+","+buf(2)+","+buf(3)+","+buf(4)+",")

ただし、これだけでは完全ではないです。
もし buf(0) = "," だったら?
などの問題が見えてきます。この辺は禁則処理などで調べてみてください。



アキス

リンク

2007/1/28(Sun) 16:56:34|NO.5271

そのような方法がありましたか・・・。
しかし、ユーザー名に区切りのキャラクタコードが入っていたら・・・

それと、ポート番号は何のためにあるのですか?



えむふ

リンク

2007/1/30(Tue) 00:53:16|NO.5305

ぼくは区切り文字を\nにしています
こうすれば結構いいと思います
配列の中身全部を送信するのは結構やっかいですね
やっぱり1つづつ読み込んで書き込んでいくしかないんじゃないでしょうか
AMdplayという通信関係のモジュールを使えばできそうですが
詳細は http://www.smith-project.jp/ smithprojectさんにのってます

ポート番号はクライアントとサーバーが同じものを使ってないとうまくできないもので
データを送受信するための穴って感じ?詳しくはわかりません;



As

リンク

2007/1/30(Tue) 16:48:59|NO.5310

ポート番号は 道のようなもので、通信目的で番号が異なります。
例えばインターネットを見るためのポートは80で メールを見るために使われるポートは110です。

これらは定義されたポート番号で、もしもインターネットを見るためにポート110に繋いだりしたら
インターネット閲覧のリクエストがメールだと勘違いしてしまって大変なことになるからです(厳密には通信エラー)

HSPのサンプルフォルダにあるスクリプトはポート99を使用していますが、これは定義されてない
ポートで自由に使えます。

配列のデータには、同じデータを何度も送信してもパケットの無駄なので、
「-(ハイフン)」を指定することにより前回のデータを継承する仕組みをするといいかもしれません。

区切りコードはどうしても必要になってくるので、キャラクター名に,や-が使えないなどの処置を
とるといいと思います^^



アキス

リンク

2007/1/30(Tue) 17:30:14|NO.5311

このような愚問に応えてくださった、
93さん、えむふさん、Asさん。
ありがとうございます。



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