説明
サーバーソケットに、接続を受け入れて、新しく接続されたソケットを戻すよう伝える。
戻り値
最大4項目のリスト。最初の文字列はコマンド("accept")。2番目の文字列は"ok"またはエラー。3番目の文字列は接続したコンピュータの名前を指定するもの。4番目の文字列は、さらにメッセージを送信するためのソケットへの参照
オプションの引数
callback
データを受信する関数の名前を指定。
timeout
callbackを使用する場合は、timeoutで関数が応答するまでの待機時間を指定。サーバーソケットに対しては、しばらくの間接続が行われていなくてもサーバーをシャットダウンするべきではないので、0を設定することもあるでしょう。
説明
ローカルコンピュータのポートをソケットに関連付ける。
戻り値
文字列2つのリスト。最初の文字列はコマンド名("bind")、2番目の文字列は、成功した場合は"ok"、そうでなければエラー
必須の引数
localhost
ローカルコンピュータを引用符付きで指定する。別のコンピュータにバインドすることはできない。
port
使用するポートを指定する。
説明
ソケットを閉じる。
戻り値
文字列2つのリスト。最初の文字列はコマンド名("close")、2番目の文字列は、成功した場合は"ok"
説明
リスニングソケットに接続する。
戻り値
文字列2つのリスト。最初の文字列はコマンド名("connect")で、2番目の文字列は、成功した場合は"ok"、そうでない場合は相手側のソケットから返されるエラー
引数
socketname
相手側のソケットの名前を指定する。Webサーバーに接続する場合は、(IPアドレスではなく)Webアドレスを指定する。
port
相手側のソケットで接続に使用されるポートを指定する。
説明
接続先のソケットのアドレスとポートを取得する。
戻り値
文字列4つのリスト。最初の文字列はコマンド("getpeername")。2番目の文字列は"ok"またはエラー。3番目がアドレスで、4番目がポート
説明
接続元(こちら側)のソケットのアドレスとポートを取得する。
戻り値
文字列4つのリスト。最初の文字列はコマンド("getsockname")。2番目の文字列は"ok"またはエラー。3番目がアドレスで、4番目がポート
説明
ソケットのブロック動作をコントロールする。
戻り値
文字列2つのリスト。最初の文字列はコマンド名("ioctl")、2番目の文字列は、成功した場合は"ok"、そうでなければエラー
引数
FIONBIO, 1
FIONBIOはNon-Blocking I/O(非ブロッキング入出力)を意味する。1(真)の場合、この機能および引数をオンにする。
説明
接続をlisten状態にするようサーバーに伝える。
戻り値
文字列2つのリスト。最初の文字列はコマンド名("listen")で、2番目の文字列は、成功した場合は"ok"、そうでなければエラー
説明
相手側のソケットからストリームメッセージ(recv)またはデータグラムメッセージ(recvfrom)のいずれかを受信する。2つのオプションの引数が使用された場合、データは即座に受信されず、callback関数が呼ばれたときに受信されます。
戻り値
文字列3つのリスト。最初の文字列はコマンド名("recv"または"recvto")。2番目は、成功した場合は"ok"、そうでなければエラー。3番目の文字列は受信したデータ。callback関数が使用された場合は、4番目の要素として元のrecvまたはrecvfromメッセージで使用されたソケットを戻す
必須の引数
n
相手側のソケットから受信するバイト数を指定する。
オプションの引数
callback
データを受信する関数の名前を指定。
timeout
callbackを使用する場合は、timeoutで関数が応答するまでの待機時間を指定。
説明
引数内のデータを、相手側のソケットに送る。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要求を送信します。