1

数日前に Clojure を学び始めました。いくつかの Aleph TCP エコー サーバーの例を試してみましたが、サーバーを tcp v4 ポートにバインドできません。デフォルトでは、サーバーは tcp v6 ポートにのみバインドします。

ここに私のプロジェクトファイル:

(defproject clj-echo-server "0.1.0-SNAPSHOT"
  :description "Echo server with Aleph"
  :url "http://example.com/FIXME"
  :license {:name "Eclipse Public License"
  :url "http://www.eclipse.org/legal/epl-v10.html"}
  :dependencies [[org.clojure/clojure "1.4.0"]
                 [aleph "0.3.0-beta12"]]
  :main clj-echo-server.core)

そしてサーバーコード:

(ns clj-echo-server.core)

(use 'lamina.core 'aleph.tcp 'gloss.core)

(defn handler [ch client-info]
  (receive-all ch
    #(enqueue ch (str "You said " %))))

(start-tcp-server
  handler
  {:port 9000, :frame (string :utf-8 :delimiters ["\r\n"])})

私が何か間違ったことをしているのか、バインディングポートを構成する方法を理解することができますが、tcp ポートに関するドキュメントはあまり役に立ちませんでした。

私の OS は Ubuntu 12.04.2 LTS で、Leiningen のバージョンは 2.0.0-preview10 で、すべて Java 1.6.0_24 OpenJDK 64 ビット サーバー VM で動作します。

tcp サーバーのポート バインディングを構成する方法について誰かアドバイスしてもらえますか?

御時間ありがとうございます。

4

2 に答える 2

1

使用したい外向きのネットワークカードではなく、ローカルホストインターフェイスにバインドしている可能性があります。特にalephのtcpサーバーについてはわかりませんが、ほとんどのサーバーでは、IPアドレスとしてリッスンするインターフェイスを指定できます。v4アドレスが指定されている場合は、必要な処理を実行できます。アレフの場合、多分それ:host:interface

于 2013-02-13T08:41:16.030 に答える
1

返信が遅くなり申し訳ありませんが:host、最新の Aleph スナップショットのキーワードのサポートを追加しました0.3.0-SNAPSHOT。これはすでにそこにあるはずです。私の見落としを見つけてくれてありがとう。

于 2013-03-15T06:42:02.747 に答える