ユーザがサーバに接続するとサーバからメッセージが送られる。そして直ぐに切断される。サーバアプリを実行後、クライアントを実行する。クライアントは複数実行できる。
//サーバ
S@BACKGROUND( 2 ) //非アクティブでも動かす
CH = G@SETUP(300,200,16,1) //画面初期化
SV = P@SRVMAKE( 5000 ) //サーバ通信開始
LOOP
G@CHRCLEAR( CH ) //画面クリア
UU = P@SRVGETUSER( SV ) //クライアント接続チェック
IF UU <> 0 THEN //接続した?
IP =P@SRVGETUSERIP(UU)
IP4= IP % 256
IP = IP / 256
IP3= IP % 256
IP = IP / 256
IP2= IP % 256
IP = IP / 256
IP1= IP % 256
MOJI$=STR(IP1)+"."+STR(IP2)+"."+STR(IP3)+"."+STR(IP4)+"が接続してきました"
P@PUSHSTR(UU,"やっほー") //送信メッセージ登録
P@SEND(UU) //送信
P@CLOSE( UU ) //クライアント切断
ELSE
MOJI$="接続待ち"
ENDIF
G@PRINT(CH,0, 0,MOJI$)
G@FLIP() //画面更新
S@SLEEP(1000)
ENDLOOP
//クライアント
S@BACKGROUND( 2 ) //非アクティブでも動かす
CH = G@SETUP(300,200,16,1) //画面初期化
SV = P@USERMAKE("127.0.0.1" , 5000) //サーバに接続開始
RMODE=0
LOOP
G@CHRCLEAR( CH ) //画面クリア
IF SV <> 0 THEN //接続待ち or 接続中
PRET = P@USERGETSTATE( SV ) //接続状態チェック
SELECT
WHEN PRET=0: //接続中?
MOJI$="接続中…"
BREAK
WHEN PRET=1: //接続完了?
MOJI$="接続しました"
RMODE=1 //受信可能とする
BREAK
WHEN PRET=-1: //接続失敗?
MOJI$="接続失敗"
SV = 0
BREAK
ENDSELECT
IF RMODE = 1 THEN //受信可能?
IF 0 < P@RECV(SV) THEN //受信 and 受信した?
MOJI2$=P@POPSTR(SV) //受信文字列取得
P@CLOSE(SV) //サーバと切断
SV=0
ENDIF
ENDIF
ENDIF
G@PRINT(CH,0, 0,MOJI$)
G@PRINT(CH,0,20,MOJI2$)
G@FLIP() //画面更新
ENDLOOP