2013-02-13 47 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