私が持っている場合のようにスーパーシンプルなスレッドTCPサーバー:これは単なる便利非常にあるクライアントにテキストremote-address
を出力します接続されたクライアントのIPアドレスを取得するにはどうすればよいですか?
USING: accessors io io.encodings.utf8 io.servers
io.sockets kernel prettyprint threads ;
: handle-client (--)
remote-address . ;
: <my-server> (-- threaded-server)
utf8 <threaded-server>
"server" >>name
1234 >>insecure
[ handle-client ] >>handler ;
: start-my-server (--)
<my-server> [ start-server ] in-thread start-server drop ;
。それはremote-address
がシンボルであるからです...その価値はどこですか? remote-address
ため documentation氏は述べています:現在のクライアント接続のアドレス指定を保持
変数を。
そして<threaded-server>
上のドキュメントは言う:
スレッド・サーバー・インスタンスのハンドラスロットは、クライアント接続を処理 引用に設定する必要があります。クライアントハンドラはリバウンド以下の変数で、 自分のスレッドで実行されている:入力ストリーム•
出力ストリーム•
ローカルアドレス•
リモートアドレス
•スレッド・サーバ•
素晴らしい!それは私がクライアントのIPで得ることができることを意味します。
次に、Address specifiersにリンクしていますが、これは関連しているようですが、remote-address
からデータを取得する方法を明確に説明していません。
クライアントのIPアドレスを取得するにはどうすればよいですか?
それが値にバインドされたシンボル(IOW変数:P)なら、あなたは 'それをGET'べきではないのですか?それはあなたに何を与えるのですか? @fedes。 –
@fedes。 ....... * facepalm *ああ、*それは何のためだ。その答えをつくってください:P – cat
私は正直なところ、「得る」ものが何だったのか分かりませんでした。 – cat