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


HSPTV!掲示板


未解決 解決 停止 削除要請

2008
0608
panda消えた… ⇒ チャットのスクリプト??0解決


panda

リンク

2008/6/8(Sun) 21:03:17|NO.16581

チャットに関する質問をされている方がいたので、回答を差し上げたところ…
書き込み送信中にエラー…。

すると、スレッド一覧から消えていた…。
なんらかのバグで消えた可能性もあるので、一応回答しておきますね。

----
おかしくならないために終了メッセージを送るようにするのが普通らしいです。

終了メッセージは独自に作ると良いでしょう。


サーバー。

#include "hspsock.as" #define SOCKET 2 #define PORT 2502 onexit goto *oex width 500,300 dataget = "" send_message = "" printmessage = "" objsize 200,18 pos 170,120 button "サーバーの作成",*smake stop *smake cls sockmake SOCKET,PORT if stat == 1 : print "TCP/IPがWindowsにインストールされていない" if stat == 2 : print "ソケットの初期化に失敗した" if stat == 3 : print "Socketのバインドに失敗した" if stat == 1 || stat == 2 || stat == 3 : goto *oex print "クライアントからの着信を待っています . . ." repeat sockwait SOCKET if stat == 0 : break if stat == 2 : print "sockmake命令でサーバーの準備ができていない" if stat == 3 : print "Socketが受信状態になっていない" if stat == 4 : print "Socketを受信状態にするのに失敗した" if stat == 5 : print "クライアントとの接続に失敗した" if stat == 2 || stat == 3 || stat == 4 || stat == 5 : goto *oex await 1 loop print "クライアントから着信がありました" *main cls pos 0,0 mesbox printmessage,500,264,4 objsize 500,18 input send_message,,,70 button "Send",*sendmessage await 32 repeat sockcheck SOCKET if stat == 0 : break if stat > 2 { print "通信中にエラーが発生した" goto *oex } await 32 loop sockget dataget,,SOCKET if stat != 0 { dialog "通信中にエラーが発生した" goto *oex } if instr(printmessage,0,"%Command_Exit%") ! -1 : goto *oex printmessage += "\n" printmessage += "Client : " printmessage += dataget goto *main *sendmessage if instr(send_message,0,"%Command_Exit%") ! -1 : goto *main sockput send_message,SOCKET printmessage += "\n" printmessage += "Server : " printmessage += send_message if stat != 0 { dialog "通信中にエラーが発生した" goto *oex } goto *main *oex sockput "%Command_Exit%",SOCKET sockclose SOCKET dialog "ソケットを切断しました" end

クライアント


#include "hspsock.as" #include "pcbnet2.as" #define SOCKET 2 #define PORT 2502 onexit goto *oex width 500,300 objsize 200,18 pos 170,120 ip = "127.0.0.1" send_message = "" dataget = "" printmessage = "" print "IP" input ip button gosub "サーバーに接続",*sopen stop *sopen cls sockopen SOCKET,ip,PORT print "接続しています..." if stat == 1 : print "TCP/IPがWindowsにインストールされていない" if stat == 2 : print "ソケットの初期化に失敗した" if stat == 3 : print "Socketのバインドに失敗した" if stat == 4 : print "サーバーに接続できなかった" if stat == 1 || stat == 2 || stat == 3 || stat == 4 : goto *oex print "正常に接続できました" wait 200 cls *main cls pos 0,0 mesbox printmessage,500,264,4 objsize 500,18 input send_message,,,70 button "Send",*sendmessage repeat sockcheck SOCKET if stat == 0 : break if stat > 2 { print "通信中にエラーが発生した" goto *oex } await 32 loop if instr(printmessage,0,"%Command_Exit%") ! -1 : goto *oex sockget dataget,,SOCKET if stat != 0 { dialog "通信中にエラーが発生した" goto *oex } printmessage += "\n" printmessage += "Server : " printmessage += dataget goto *main *sendmessage if instr(send_message,0,"%Command_Exit%") ! -1 : goto *main sockput send_message,SOCKET printmessage += "\n" printmessage += "Client : " printmessage += send_message if stat != 0 { dialog "通信中にエラーが発生した" goto *oex } goto *main *oex sockput "%Command_Exit%",SOCKET sockclose SOCKET dialog "ソケットを切断しました" end

---



この記事に返信する


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