sockwait

クライアントの着信を待つ

sockwait p1,p2

p1=0~31(0) : ソケットID番号
p2=0~31(0) : 代替ソケットID番号

(プラグイン / モジュール : hspsock)

解説

sockmake命令でサーバーとして準備されたソケットで、クライアントの着信を待ちます。
sockwait命令は、必ずsockmake命令が正常に終了した後に実行される必要があります。

sockwait命令は、クライアントの着信がない場合や、エラーが発生した場合には、システム変数 statに0以外の値を返します。
システム変数 statに0が代入された場合にはじめてクライアントとの接続に成功し、sockget命令、sockput命令などの通信を行なうことができるようになります。

サーバーとして着信を待つ場合には、sockmake命令でソケットをサーバーとして初期化した後、sockwait命令でシステム変数 statが0になるまでループして待機して下さい。その際には、必ずループ内に waitawait命令を入れて間をあける必要があります。
そうしないと、 Windowsの他のアプリケーションにタスクが回らなくなってしまいます。

p2が0か省略された場合は、p1で指定されたソケットID番号を通して、クライアントとの通信を行なうことが可能になります。
p2に0以外の値を指定した場合は、着信したクライアントとの通信をp2で指定した代替ソケットIDを通して行なうことができます。
この場合、p1で指定したソケットID番号では、引き続きsockmake命令でサーバー動作を行なうことが可能です。同一のポートで、複数のクライアント着信を受け付ける場合は、代替ソケットID番号を使用するようにしてください。

結果がエラーの場合は、 0以外の値になります。エラーが起こった場合は、通信を行なうことはできません。

システム変数 statの値の詳細は以下の通りです。

  stat : エラー内容
 -----------------------------------------------------
   1   : クライアントから接続要求が来ていない
   2   : sockmake命令でサーバーの準備ができていない
   3   : Socketが受信状態になっていない
   4   : Socketを受信状態にするのに失敗した
   5   : クライアントとの接続に失敗した

関連項目

sockmakeソケットをサーバーとして初期化(hspsock)

サンプル逆引き (1)

server2.hsp

情報

プラグイン / モジュールhspsock
バージョン3.4
作成日2014/07/04
著作者onitama
URLhttp://hsp.tv/
備考hspsock.asをインクルードすること。
タイプ拡張命令
グループ通信制御命令
対応環境
  • Windows 版 HSP
hs ファイルhsphelp\hspsock.hs