(rontolisp) docs
← 関数

rontolisp:tcp-local-port

(rontolisp:tcp-local-port handle)

リスナーまたはソケットハンドルにバインドされたローカル TCP ポートを整数で 返します。主な用途はポート 0(OS が選ぶエフェメラルポート)で listen した後に 実際のポートを取得することです。テストや自己完結の例がポートをハードコード せずに済みます:

接続済みのソケットハンドルにも使え、その場合は接続のローカル(クライアント側) ポートを返します:

(let ((sock (rontolisp:tcp-connect "127.0.0.1" 7777)))
  (print (rontolisp:tcp-local-port sock))   ; the ephemeral client port
  (close sock))

バックエンドごとの対応

  • インタープリタJVM: 対応する java.net.ServerSocket / SocketgetLocalPort() を使用します。ソケットでもリスナーでもないハンドルは エラーを通知します(インタープリタ)/キャストエラーで失敗します(JVM)。
  • WASM: コンポーネント専用で、wasi:socketsget-local-address を 使用します。ソケットでもリスナーでもないハンドルには nil を返します。 Preview 1(コアモジュール)モードではコンパイルエラーです。
  • ブラウザプレイグラウンド: 非対応。