在调试一些网络协议,例如 websocket 协议时,数据包的内容通常不是合法的可读字符串,而是包含了各种操作码。那么如何简单地看到数据包里的可读字符呢?

例如:

<<136, 75, 3, 234, 87, 101, 98, 83, 111, 99, 107, 101, 116, 32, 80, 114, 111,
 116, 111, 99, 111, 108, 32, 69, 114, 114, 111, 114, 58, 32, 82, 101, 99, 101,
 105, 118, 101, 100, 32, 117, 110, 109, 97, 115, 107, 101, 100, 32, 102, 114,
 ...>>

使用 :io.format/1 可以快速打印出其中的可读字符(我不知道这里是强制使用了哪种编码,知道的朋友请评论)

K^CêWebSocket Protocol Error: Received unmasked frame from a client endpoint.

对于 debug 还是很有帮助的。


Ljzn
399 声望102 粉丝

网络安全;函数式编程;数字货币;人工智能