【问题标题】:Test Harness for a Clojure TCP ClientClojure TCP 客户端的测试工具
【发布时间】:2014-02-08 08:00:43
【问题描述】:

我正在编写一个 TCP 客户端,用于连接繁忙网络上的节点、向其发送消息并读取来自节点的响应。我无权访问在这些节点上运行的代码,因此我必须非常仔细地雕刻我通过网络发送的 TCP 消息。

我决定从网络上收集一堆实时 TCP 数据并将其用作测试我的客户端的基础 - 给定这些输入参数,确保传输的二进制呈现为十六进制我期待看到。

此时,我将启动 Wireshark 并弄清楚如何过滤我正在发送的数据包,或者实现一个非常简单的 TCP 服务器来等待连接,将传输的二进制文件发送到磁盘(可能已处理到十六进制),然后测试我正在发送我期望发送的内容;两者都不像强大或专业的解决方案。

那么:您建议如何为 TCP 客户端设置测试工具来验证正确的十六进制消息是否发出?

【问题讨论】:

    标签: sockets networking testing tcp clojure


    【解决方案1】:

    您应该查看aleph 的tcp 和gloss 的协议。这是tutorialexample

    一个简单的 tcp echo-server 可以是:

    (defn echo-handler [ch client-info]
      (siphon ch ch)) ;; a simple echo handler
    
    (defn start-server [] (start-tcp-server
                           echo-handler
                           {:port 9997}))
    (start-server) 
    

    如果您在其中对协议进行编码并使用“解码”,则光泽在将接收到的消息作为十六进制转储或值发送时非常有用。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-03-26
      • 2014-03-13
      • 2020-05-25
      • 1970-01-01
      相关资源
      最近更新 更多