(rontolisp) docs
← 関数

rontolisp:tcp-local-address rontolisp:tcp-peer-address rontolisp:tcp-peer-port

(rontolisp:tcp-local-address handle) -- (rontolisp:tcp-peer-address handle) -- (rontolisp:tcp-peer-port handle)

TCP ハンドルのアドレス取得関数です。tcp-local-address はリスナーまたは ソケットハンドルのローカル(バインド先)IP アドレスを文字列で返します。 tcp-peer-addresstcp-peer-port は接続済みソケットハンドルのリモート IP アドレス(文字列)とリモートポート(整数)を返します。 rontolisp:tcp-local-port と合わせて、 usocket シムusocket:get-local-* / usocket:get-peer-* アクセサを支えています。

peer 系アクセサはリスナーハンドルを拒否します(リスナーに peer は ありません):

$ rontolisp
CL-USER> (setq l (rontolisp:tcp-listen 0 "127.0.0.1"))
CL-USER> (rontolisp:tcp-peer-address l)
Error: tcp-peer-address expects a connected socket handle

バックエンドごとの対応

  • インタープリタJVM: 対応する java.net.Socket / ServerSocketgetLocalAddress() / getInetAddress() / getPort() を使用します。種類の 合わないハンドルはエラーを通知します(インタープリタ)/キャストエラーで 失敗します(JVM)。
  • WASM: コンポーネントモードのみ -- 3 つともインタープリタ/JVM と まったく同じように実際のアドレスとポートを返します。失敗時や種類の 合わないハンドルではエラーを通知せず nil を返します(splice された usocket プログラムがそのまま動くようにするためです)。Preview 1 (コアモジュール)モードでは他の tcp 組み込みと同様、呼び出し時エラーです。
  • ブラウザプレイグラウンド: 非対応。