我是一名Clojure新手,请见谅。我正尝试编写一个简单的程序来通过套接字发送命令并得到响应。我的代码如下:
(def IPaddress "10.71.18.81")
(def port 1500)
(def socket (new Socket IPaddress port))
(print (clojure.string/join ["\nConnected to HSM: " (. socket isConnected)]))
(def in (DataInputStream. (BufferedInputStream. (. socket getInputStream))))
(def out (DataOutputStream. (BufferedOutputStream. (. socket getOutputStream))))
(def command "Some string")
(. out WriteUTF command)
(def response (. in readUTF))
(print (clojure.string/join ["Output from HSM: " response]))
错误信息是“Exception in thread "main" java.lang.IllegalArgumentException: No matching method: writeUTF”。我在理解Java互操作性和访问对象方法等方面遇到了困难。提前致谢。
编辑:如果有人感兴趣,我的最终可工作代码包含在此处:
(def IPaddress "10.71.18.81")
(def port 1500)
(def socket (Socket. IPaddress port))
(println "Connected:" (.isConnected socket))
(def in (DataInputStream. (BufferedInputStream. (.getInputStream socket))))
(def out (DataOutputStream. (BufferedOutputStream. (.getOutputStream socket))))
(def command "Some string")
(println "Input:" command)
(.writeUTF out command)
(.flush out)
(def response (.readUTF in))
(println "Output: " response)