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


HSPTV!掲示板


未解決 解決 停止 削除要請

2010
0306
DiesPBCnetを使って多人数型チャットを作りたいのですが5解決


Dies

リンク

2010/3/6(Sat) 09:37:07|NO.31040

PBCnetを使って多人数型チャットを作りたいのですが、
pbcnet2を使わせていただこうと思っています。
そしてこの間そのサンプルをダウンロードしたのですが、
サーバー用とクライアント用が分かれていますよね。
これってひとつに統合できたりとか出来ないのでしょうか。
というのも、実際にチャットをするとき二つのウィンドウが開いていると邪魔だし……

よろしくお願いします。



この記事に返信する


腱鞘炎

リンク

2010/3/6(Sat) 10:45:24|NO.31044

ウインドウを非表示にするなら
「gsel 0,-1」
でいいかと。



Chokoko

リンク

2010/3/6(Sat) 11:45:11|NO.31045


#include "pcbnet2.as" IP = "127.0.0.1" port = 6546 max = 10 sendmessage = "" dim sock,max dim objid,10 notesel buf objsize 320,20 button "サーバー",*MAKE:objid(0) = stat pos 320,0 button "クライアント",*OPEN:objid(1) = stat pos 0,20 mesbox buf,640,440,0,0:objid(2) = stat input sendmessage,440,20,100:objid(3) = stat pos 440,460 objsize 200,20 button gosub "送信",*SENDDATA:objid(4) = stat objenable objid(4),0 stop *MAKE SERVERflg = 1//サーバーとクライアントを区別するため tcpmake mysock,port if stat != 0:end goto *START *OPEN tcpopen sock,IP,port//接続 repeat tcpiscon sock if stat = 1:break if stat = 2:end loop goto *START *START//オブジェクトを有効、無効化する objenable objid(0),0 objenable objid(1),0 objenable objid(4),1 *MAIN if SERVERflg = 1:gosub *CONNECT_WAIT gosub *RECVDATA await 1 goto *MAIN *CONNECT_WAIT//サーバーのみ接続待機 tcpwait mysock if stat = 1{ repeat max if sock(cnt) = 0{ tcpaccept sock(cnt),mysock } loop } return *RECVDATA//受信 if SERVERflg = 0{//クライアント tcpcount datasize,sock if datasize != 0{ get = "" tcpget get,datasize+1,sock noteadd get,0,0 objprm objid(2),buf } }else{//サーバー repeat max if sock(cnt) != 0{ tcpcount datasize,sock(cnt) if datasize != 0{ get = "" tcpget get,datasize+1,sock(cnt) send = "[ID:"+cnt+"]"+get+"" repeat max if sock(cnt) != 0:tcpput send,sock(cnt) loop noteadd send,0,0 sendmessage = "" objprm objid(2),buf objprm objid(3),sendmessage } } loop } return *SENDDATA//送信 if sendmessage != ""{ if SERVERflg=0{//クライアント send = ""+sendmessage+"" tcpput send,sock }else{//サーバー send = "[ID:MASTER]"+sendmessage+"" repeat max if sock(cnt) != 0:tcpput send,sock(cnt) loop noteadd send,0,0 objprm objid(2),buf } sendmessage = "" objprm objid(3),sendmessage } return
このようにサーバーとクライアントで、
そろぞれ処理を分けることで1つに統合することができます。

このスクリプトでは自分のサーバーにしか接続できませんが、
IPアドレスの部分を変更すれば他人のサーバーにも接続できます。



ORZ

リンク

2010/3/6(Sat) 13:15:14|NO.31049

PCBNet2な。



Ve

リンク

2010/3/6(Sat) 15:33:29|NO.31061

分けた方がレスポンスが早いと思うんだけど…。



Dies

リンク

2010/3/6(Sat) 15:50:04|NO.31062

すみません、間違えました><
一行目のPBCnet→HSPです

みなさん迅速な回答ありがとうございました。

腱鞘炎さんのおっしゃるとおり、そういう手もありましたね。
Veさんもおっしゃっているように、本当は二つに分けた方がいいのでしょうし……。
Chokokoさんもご丁寧にありがとうございます。
一つにまとめた方が起動も手間がかからなくていいかなと。
参考にさせていただきます。
そしてORZさん、ご指摘のほどありがとうございました><



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