(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
> (setq l (rontolisp:tcp-listen 0 "127.0.0.1"))
> (rontolisp:tcp-peer-address l)
Error: tcp-peer-address expects a connected socket handle

バックエンドごとの対応

  • インタープリタJVM: 対応する java.net.Socket / ServerSocketgetLocalAddress() / getInetAddress() / getPort() を使用します。種類の 合わないハンドルはエラーを通知します(インタープリタ)/キャストエラーで 失敗します(JVM)。
  • WASM: ソケットアダプタには接続されておらず、コンポーネントモードでは 3 つとも nil を返します(splice された usocket プログラムがそのまま コンパイル・実行できるようにするためです)。Preview 1(コアモジュール) モードでは他の tcp 組み込みと同様コンパイルエラーです。
  • ブラウザプレイグラウンド: 非対応。