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 端口不是很有帮助。

我的操作系统是 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 地址,那么它会做您想做的事。对于 aleph,也许是:hostor :interface

于 2013-02-13T08:41:16.030 回答
1

抱歉回复晚了,但我:host0.3.0-SNAPSHOT. 这应该已经在那里了,谢谢你发现我的疏忽。

于 2013-03-15T06:42:02.747 回答