tcl socket 如何发送16进制字节流

在tcl socket编程时需要发送16进制的字节流,不清楚如何发送。我的操作步骤如下:

首先建立一个socket连接,代码为

set id [socket "2.1.1.9" 3000]

连接建立成功后

puts $id "12"
flush $id

抓包查看发送的数据为"3132","3132"是16进制的,换算成10进制为"4950",对应的ASCII就是"12",也就是说发送的"12"是ASCII格式的,现在我想直接发送16进制的"12"(抓包查看发送的数据为"12"),该如何操作呢?

阅读 4.8k
1 个回答

如果这就是你的需求的话,\x12 就能达到目的。

Tcl 的设计哲学是 Everything is a string,因此不论你写 12 还是 "12" 都会被当作字符串输出。

当然 Tcl 也可以处理二进制数据,借助 binary 命令,你的目的也可以使用 [binary decode hex 12] 达到。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进