以下ではTUTSchemeに拡張したネットワーク機能の使用の詳細を述べる.ここ
ではネットワークの利用のためのポートをネットワークポート,ネッ
トワーク
ポートのうちプロトコルにTCP/IPを使用するものをTCPポート,
UDP/IPを使用するものをUDPポートと呼ぶ.ネットワーク
ポートは双方
向であるため, input-port?及び output-port?はネットワーク
ポートに対して #tを返す.
ネットワークポートを開きそれを返す.〈ポート番号〉としては整数 あるいは文字列が許される.整数の場合はUNIXのポート番号として使用可能な 正整数(1024
32767)でなければならない.文字列の場合はそれをネット ワーク
サービス名としてディレクトリ /etc/servicesから対応す るポート番号を検索する.TCP/IPを利用する場合は接続要求を受理するための ポート(バウンド
ポートと呼ぶ)を返す.タイムアウトの場合は #fを返す.
(open-tcp-port 〈ポート番号〉 [〈ホスト〉]) 【関数】
(open-udp-port 〈ポート番号〉 [〈ホスト〉]) 【関数】
通信ポートに接続して新しいポートを返す.〈ポート番号〉は上述の関数と同 様である.接続するホストを指定する場合は2番目の引数としてホスト名を表 す文字列を与える.タイムアウトの場合は #fを返す.
〈バウンドポート〉への接続要求を受理し,TCPポートを返す.タイム アウトの場合は #fを返す.
〈ポート〉がバウンドポートであれば #t,そうでなければ #fを返す.
〈ポート〉がTCPポート/ UDPポートであれば #t,そうでなければ #fを返す.
〈バウンドポート〉に接続要求が到着していれば #t,そうでな ければ #fを返す.
〈タイム〉が正整数であればタイムアウトまでの時間を秒単位で指定する.そ れ以外であればタイムアウト処理は行なわない.〈ポート〉はネットワークポートであり,これらのうち読みだし可能なポートのみをリストで返 す.タイムアウトの場合は #fを返す.
ネットワークポートのポート番号/ホスト名を返す.
〈ポート〉はTCPポートでなければならない.〈ポート〉が接続しているホス ト名とポート番号をリストで返す.
(close-bound-tcp-port 〈ポート〉) 【関数】
(close-bound-udp-port 〈ポート〉) 【関数】
バウンドポートを閉じて #tを返す.〈ポート〉は既に閉じられ ていてもエラーにならない.この場合は #fを返す.
ネットワークポートを閉じて #tを返す.〈ポート〉は既に閉じ られていてもエラーにならない.この場合は #fを返す.
〈ホスト〉はホスト名を表す文字列でなければならない.現在そのホストが稼 働(up)していれば #t,そうでなければ #fを返す.
〈ホスト〉はホスト名を表す文字列でなければならない.与えられたホスト名 と過去5,10,15分間の負荷の平均のリストを要素とするリストを返す.〈ホ スト〉を省略した場合は可能な限り多くのホストの情報を返す.
ネットワークポートから直接数値を読み出す(32bitの整数表現).〈ポー ト〉は省略可能であるが,この場合は既定の入力ポート(関数 current-input-portの返り値)はネットワーク
ポートでなければなら ない.読み出した数値を整数型に変換して返す.
(write-fixnum 〈数値〉 [〈ポート〉]) 【関数】
ネットワークポートに〈数値〉を直接書き込む(32bitの整数表現). 〈ポート〉は省略可能であるが,この場合は既定の出力ポート(関数 current-output-portの返り値)はネットワーク
ポートでなければなら ない.〈数値〉を返す.
ディレクトリ /etc/hostsに登録されているすべてのホスト名を要素とす るリストを返す.
(service->port-number 〈サービス〉) 【関数】
文字列〈サービス〉をサービス名とするネットワークサービスの使用 するポート番号を返す.ディレクトリ /etc/servicesが調べられる.
〈ポート〉からなにか文字が読み出せる状態であれば #t,そうでなけ れば #fを返す.〈ポート〉を省略した場合は現在の入力ポート(関数 current-input-portの返り値)を調べる.
そのプロセスのホスト名(文字列)を保持する.
関数 bind-tcp-port, bind-udp-port, open-tcp-port, open-udp-portによって参照される変数.正整数ならばタイムアウトまでの 時間を秒単位で設定する.それ以外の値ではタイムアウト処理は機能しない.
TCPポートからの読み出しに対するタイムアウトを設定するための変数.
UDPポートからの読み出しに対するタイムアウトを設定するための変数.
関数 acceptから参照される変数.接続要求待ちのタイムアウトを設定す る.