0

我正在尝试测试mire

当我执行此代码时

(ns mire
  (:use [clojure.contrib server-socket duck-streams]))

我有java.io.FileNotFoundException错误。

谷歌搜索发现clojure.contrib已弃用,我将 server-socket 添加为依赖项project.clj,并执行leon repl以安装 jar 库

mire> lein repl
Retrieving server-socket/server-socket/1.0.0/server-socket-1.0.0.pom from clojars
Retrieving server-socket/server-socket/1.0.0/server-socket-1.0.0.jar from clojar

然后在 emacs/cider 中,我尝试使用此代码来获得相同的 FileNotFoundException 错误。

(ns mire
  (:use [server.socket server-socket duck-streams]))

java.io.FileNotFoundException: Could not locate server/socket/server_socket__init.class or     
server/socket/server_socket.clj on class path: 

在命令行 REPL 中,(use [server.socket server-socket])给了我同样的错误信息。

可能有什么问题?我使用 emacs/苹果酒/nREPL。这是project.clj。

(defproject mire "0.1.0-SNAPSHOT"
  :description "FIXME: write description"
  :dependencies [[org.clojure/clojure "1.5.1"]
                 [server-socket "1.0.0"]])

这是导致错误的代码:

(ns mire
  (:use [clojure.contrib server-socket duck-streams]))

(def port (* 3 1111))

(defn mire-handle-client [in out]
  (binding [*in* (reader in)
            *out* (writer out)]
    (loop []
      (println (read-line))
      (recur))))

(def server (create-server port mire-handle-client))
4

2 回答 2

2

在 Clojure中构建 Echo 服务器 - 第 2 部分中的代码中,这是server.socket.

(ns mire
  (:use server.socket))
(import '[java.io BufferedReader InputStreamReader OutputStreamWriter])

(def port (* 3 1111))

(defn mire-handle-client [in out]
  (binding [*in* (BufferedReader. (InputStreamReader. in))
            *out* (OutputStreamWriter. out)]
        (loop []
            (println (read-line))
            (recur))))

(def server (create-server port mire-handle-client))
于 2014-07-12T17:24:12.990 回答
1

命名空间通常以点分隔。server.socket在这个图书馆里。

尝试这个:

(ns mire (:use [server.socket]))
于 2014-07-13T01:18:59.207 回答