2013-02-13 92 views
1

幾天前我開始學習Clojure。我正在嘗試使用一些Aleph TCP回顯服務器示例,但我無法將服務器綁定到tcp v4端口。服務器默認綁定到tcp v6端口。如何將(Clojure)Aleph TCP服務器綁定到TCP v4端口?

這裏我的項目文件:

(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"])}) 

我可以計算出,如果我做錯了什麼或如何配置綁定端口,文檔WASN對tcp端口沒什麼幫助。

我的操作系統是Ubuntu 12.04.2 LTS,Leiningen版本是2.0.0-preview10,全部運行在Java 1.6.0_24 OpenJDK 64位服務器虛擬機上。

任何人都可以告訴我如何配置tcp服務器的端口綁定?

謝謝你的時間。

回答

1

對不起,對於最近的回覆,但我添加了的最新Aleph快照中的關鍵字:host。這應該已經在那裏了,謝謝你抓住我的監督。

1

它可能綁定到您的localhost接口,而不是您希望使用的任何外向網卡。我不明白aleph的tcp服務器,但是大多數服務器允許您指定要作爲IP地址進行偵聽的接口:如果給定v4地址,則它會按照您的要求進行操作。對於阿列夫,也許這是:host:interface

+0

感謝您的回答@amalloy。我嘗試了你的建議,但問題仍然存在。顯然只是忽略這些值。 – jolisper 2013-02-14 01:48:22