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


HSPTV!掲示板


未解決 解決 停止 削除要請

2010
0725
secondチャットプログラム動作確認に協力お願いします4解決


second

リンク

2010/7/25(Sun) 12:39:43|NO.33926

チャットプログラムがきちんと作動するか確かめたいんですが
ご協力お願いします
ご協力いただける方は
以下のプログラムをエディタにコピーして実行してください
GOをおして接続できたら”接続完了”と入力し送信を押して閉じてください

終了 2010年7月25日 12時 50分
間でサーバープログラムを起動させておきますのでよろしくお願いします


;----------送信ボタンでテキストを送信するタイプ #include "pcbnet2.as" #define SERVERPORT 46497 #define VER "1.0" sdim recivedata,200;データを受信する sdim recivename,20;受信したデータから名前を取り出す sdim recivetext,50;受信したデータからテキストを取り出す ;--------名前などの定義------------------ username="TEST_USER";デフォルトの名前 serverIP="";同接続先 screen 0,320,135 title "RSCS Ver."+VER+" START" syscolor 15:boxf color 0,0,0 mes "利用するユーザーネーム" input username,320,20,20 objsize 320,60 button "GO",*start stop *start screen 0,640,240 notesel chatlog syscolor 15:boxf mesbox chatlog,640,220,0 boxID=stat chatmes="サーバーに接続を開始します。":gosub *writetext2box ;------------------接続開始---------------------------------- tcpopen socket,serverIP,SERVERPORT repeat tcpiscon socket if stat!0:break await 1 loop if stat=2:chatmes="--------------------------------\nサーバーとの接続に問題が生じました。5秒後に終了します!\n--------------------------------":gosub *writetext2box:wait 500:end chatmes="サーバーに接続しました。名前を送信":gosub *writetext2box tcpput username,socket;名前送信 ;--------------------------------------------------------------- chatmes="--------------------------------\n認証が完了しました。チャット開始\n--------------------------------":gosub *writetext2box mytext="" input mytext,540,20,50 inputboxID=stat objsize 100,20:pos 540,220:button gosub "送信",*sendtext title "Really Simple Chat System Client Ver."+VER+" Your name is \""+username+"\"" *main ;----------------------華麗なるメインループ-------------------------------------- gosub *waittext;サーバーからデータが来てないかチェック await 10 goto *main ;----------------------終わり---------------------------------------------------- *waittext tcpfail socket;エラーチェック if stat!0:{;エラーが生じた chatmes="--------------------------------\nサーバーとの接続に問題が生じました。5秒後に終了します!\n--------------------------------":gosub *writetext2box:wait 500:end } tcprecv recivedata,0,70,socket if stat!0:{;テキストが来ている unpack recivedata,"a20a50",recivename,recivetext chatmes=""+recivename+" : "+recivetext+"":gosub *writetext2box } return *sendtext tcpput mytext,socket;サーバーにテキストを送信 chatmes=username+" : "+mytext:gosub *writetext2box;自分のメッセージは帰ってこないので、自分でログに追加する mytext="" objprm inputboxID,"";入力欄をクリア objsel inputboxID;入力欄にフォーカスを移す return *writetext2box noteadd ""+chatmes+"",0 objprm boxID,chatlog return



この記事に返信する


Ve

リンク

2010/7/25(Sun) 12:44:24|NO.33927

これは・・・何のテスト?



second

リンク

2010/7/25(Sun) 12:49:45|NO.33928

今のところLAN上のプログラムの接続は確認してるんですが
外からつまりネット上からの接続がうまくいくかまだ試してないんです
そこでうまく繋がるかのテストです
ですが今気づいたんですがチョットミスがありましたもう一度乗せます
終了 2010年7月25日 午後1時 50分
間でサーバープログラムを起動させておきますのでよろしくお願いします


;----------送信ボタンでテキストを送信するタイプ #include "pcbnet2.as" #define SERVERPORT 46497 #define VER "1.0" sdim recivedata,200;データを受信する sdim recivename,20;受信したデータから名前を取り出す sdim recivetext,50;受信したデータからテキストを取り出す ;--------名前などの定義------------------ username="TEST_USER";デフォルトの名前 serverIP="118.11.82.102";同接続先 screen 0,320,135 title "RSCS Ver."+VER+" START" syscolor 15:boxf color 0,0,0 mes "利用するユーザーネーム" input username,320,20,20 objsize 320,60 button "GO",*start stop *start screen 0,640,240 notesel chatlog syscolor 15:boxf mesbox chatlog,640,220,0 boxID=stat chatmes="サーバーに接続を開始します。":gosub *writetext2box ;------------------接続開始---------------------------------- tcpopen socket,serverIP,SERVERPORT repeat tcpiscon socket if stat!0:break await 1 loop if stat=2:chatmes="--------------------------------\nサーバーとの接続に問題が生じました。5秒後に終了します!\n--------------------------------":gosub *writetext2box:wait 500:end chatmes="サーバーに接続しました。名前を送信":gosub *writetext2box tcpput username,socket;名前送信 ;--------------------------------------------------------------- chatmes="--------------------------------\n認証が完了しました。チャット開始\n--------------------------------":gosub *writetext2box mytext="" input mytext,540,20,50 inputboxID=stat objsize 100,20:pos 540,220:button gosub "送信",*sendtext title "Really Simple Chat System Client Ver."+VER+" Your name is \""+username+"\"" *main ;----------------------華麗なるメインループ-------------------------------------- gosub *waittext;サーバーからデータが来てないかチェック await 10 goto *main ;----------------------終わり---------------------------------------------------- *waittext tcpfail socket;エラーチェック if stat!0:{;エラーが生じた chatmes="--------------------------------\nサーバーとの接続に問題が生じました。5秒後に終了します!\n--------------------------------":gosub *writetext2box:wait 500:end } tcprecv recivedata,0,70,socket if stat!0:{;テキストが来ている unpack recivedata,"a20a50",recivename,recivetext chatmes=""+recivename+" : "+recivetext+"":gosub *writetext2box } return *sendtext tcpput mytext,socket;サーバーにテキストを送信 chatmes=username+" : "+mytext:gosub *writetext2box;自分のメッセージは帰ってこないので、自分でログに追加する mytext="" objprm inputboxID,"";入力欄をクリア objsel inputboxID;入力欄にフォーカスを移す return *writetext2box noteadd ""+chatmes+"",0 objprm boxID,chatlog return



Ve

リンク

2010/7/25(Sun) 12:54:53|NO.33929

今度は上手くいったね。

スレッドが分割しちゃったけど、
ネットワークゲームでもソケットは1つだけで事が足りるよ。

送受信するデータに識別用の文字を入れて処理を分類させる。

チャットの場合は "chat"を先頭につけたデータ
メンバーは "member"、ゲーム中は色んなデータになるだろうけど、
場所なら"move"とかライフなら"hp"とか、受け取った先で先頭の文章を判別してそれぞれの処理へ。



second

リンク

2010/7/25(Sun) 13:00:44|NO.33930

ご協力ありがとうございます
サーバープログラムは終了させました

Veさん先ほどからアドバイスとても感謝しています
識別用の文字を入れるのはいい案ですね
早速取り入れて見たいと思います^^



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