公開日: 04/01/2021

ソケット

skt<<Accept(<callback, timeout>)

説明

サーバーソケットに、接続を受け入れて、新しく接続されたソケットを戻すよう伝える。

戻り値

最大4項目のリスト。最初の文字列はコマンド("accept")。2番目の文字列は"ok"またはエラー。3番目の文字列は接続したコンピュータの名前を指定するもの。4番目の文字列は、さらにメッセージを送信するためのソケットへの参照

オプションの引数

callback

データを受信する関数の名前を指定。

timeout

callbackを使用する場合は、timeoutで関数が応答するまでの待機時間を指定。サーバーソケットに対しては、しばらくの間接続が行われていなくてもサーバーをシャットダウンするべきではないので、0を設定することもあるでしょう。

skt<<bind(localhost, port)

説明

ローカルコンピュータのポートをソケットに関連付ける。

戻り値

文字列2つのリスト。最初の文字列はコマンド名("bind")、2番目の文字列は、成功した場合は"ok"、そうでなければエラー

必須の引数

localhost

ローカルコンピュータを引用符付きで指定する。別のコンピュータにバインドすることはできない。

port

使用するポートを指定する。

skt<<Close()

説明

ソケットを閉じる。

戻り値

文字列2つのリスト。最初の文字列はコマンド名("close")、2番目の文字列は、成功した場合は"ok"

skt<<Connect(socketname, port)

説明

リスニングソケットに接続する。

戻り値

文字列2つのリスト。最初の文字列はコマンド名("connect")で、2番目の文字列は、成功した場合は"ok"、そうでない場合は相手側のソケットから返されるエラー

引数

socketname

相手側のソケットの名前を指定する。Webサーバーに接続する場合は、(IPアドレスではなく)Webアドレスを指定する。

port

相手側のソケットで接続に使用されるポートを指定する。

skt<<GetPeerName()

説明

接続先のソケットのアドレスとポートを取得する。

戻り値

文字列4つのリスト。最初の文字列はコマンド("getpeername")。2番目の文字列は"ok"またはエラー。3番目がアドレスで、4番目がポート

skt<<Get Sock Name()

説明

接続元(こちら側)のソケットのアドレスとポートを取得する。

戻り値

文字列4つのリスト。最初の文字列はコマンド("getsockname")。2番目の文字列は"ok"またはエラー。3番目がアドレスで、4番目がポート

skt<<ioctl(FIONBIO, Boolean)

説明

ソケットのブロック動作をコントロールする。

戻り値

文字列2つのリスト。最初の文字列はコマンド名("ioctl")、2番目の文字列は、成功した場合は"ok"、そうでなければエラー

引数

FIONBIO, 1

FIONBIOはNon-Blocking I/O(非ブロッキング入出力)を意味する。1(真)の場合、この機能および引数をオンにする。

skt<<Listen()

説明

接続をlisten状態にするようサーバーに伝える。

戻り値

文字列2つのリスト。最初の文字列はコマンド名("listen")で、2番目の文字列は、成功した場合は"ok"、そうでなければエラー

skt<<recv(n, <callback, timeout>)

skt<<recvfrom(n, <callback, timeout>)

説明

相手側のソケットからストリームメッセージ(recv)またはデータグラムメッセージ(recvfrom)のいずれかを受信する。2つのオプションの引数が使用された場合、データは即座に受信されず、callback関数が呼ばれたときに受信されます。

戻り値

文字列3つのリスト。最初の文字列はコマンド名("recv"または"recvto")。2番目は、成功した場合は"ok"、そうでなければエラー。3番目の文字列は受信したデータ。callback関数が使用された場合は、4番目の要素として元のrecvまたはrecvfromメッセージで使用されたソケットを戻す

必須の引数

n

相手側のソケットから受信するバイト数を指定する。

オプションの引数

callback

データを受信する関数の名前を指定。

timeout

callbackを使用する場合は、timeoutで関数が応答するまでの待機時間を指定。

skt<<Send(stream)

skt<<SendTo(dgram)

説明

引数内のデータを、相手側のソケットに送る。Sendはストリームを送り、Sendtoはデータグラムを送ります。

戻り値

文字列3つのリスト。最初の文字列はコマンド名("send"または"sendto")。2番目は、成功した場合は"ok"、そうでなければエラー。3番目の文字列は送信できなかったストリームの一部、または、すべてのデータが正常に送信された場合は空白

引数

stream

相手側のソケットに送信するコマンドを指定する。

dgram

相手側のソケットに送信するコマンドを指定する。

ノート

引数にバイナリデータが必要な場合があります。JMPでは、印刷できないASCII文字を波形符号(~)と16進数で示します。たとえば、次のようになります。

skt<<send(("GET / HTTP/1.0~0d~0a~0d~0a");

これは、HTTPサーバーにGET要求を送信します。

より詳細な情報が必要な場合や、質問があるときは、JMPユーザーコミュニティで答えを見つけましょう (community.jmp.com).