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


HSPTV!掲示板


未解決 解決 停止 削除要請

2006
1018
kanzakiHSP3.0 同梱のサンプルスクリプト「CLIENT2.hsp」内記述に関する報告と、sockgetの扱いに関して質問0未解決


kanzaki

リンク

2006/10/18(Wed) 05:18:09|NO.3008

HSP3.0に同梱されたスクリプト「CLIENT2.hsp」ですが
sockcheck で、データーを着信していればループを続け
逆に着信していなければループを抜ける構造になっています。
前後のスクリプトからすると
恐らく "if stat!=0 : break" では無く "if stat =0 : break"
が正しいのだと思いますが…sockgetの動作に関して質問です。

このサンプルですと、sockgetを実行したときに待ち時間が発生しています。
sockgetは着信していないときにはエラーではなく、
着信するまで待機という扱いになるのでしょうか?(全くタイムアウトを設けていない?)

逆にいえば、スクリプトを円滑に動作させる場合には
sockcheck が必須と言う事で間違いないでしょうか?

希望としては、sockget系の命令を実行したときに、
sockcheckと同等のチェックを行い、statに結果を返し
オプションで実際に受信するかどうかを指定…とかになると面倒がないなぁと


#include "hspsock.as"

title "TCPクライアントテスト"
adr="127.0.0.1"
port=999
mes adr+"、ポート"+port+"に接続中..."
sockopen 0,adr,port
if stat : dialog "socket error" : goto *bye

mes "接続しました..."

a=0
repeat
sockcheck 0
title "CHK="+stat+"/"+a
;if stat!=0 : break
if stat =0 : break;← これで正しい??
wait 10
a+
loop

a=""
sockget a,64
if stat : dialog "socket error" : goto *bye
mes "サーバーからのメッセージ : "+a
*bye
mes "終了"
sockclose
stop



この記事に返信する


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