3

通过网络发送和接收的数据的类型是 String 或 Bytestring。我们不能发送任何其他类型,例如Int, 或[Bool]例如,因为所有内容都通过Handle. 我知道我们可以解析它,即使使用read,但我认为它并不漂亮,也不可靠,也不有效。

为什么做出这个选择?是因为它在技术上是“不可能的”,还是因为Network它只是对 C 库的绑定,因为延迟,还是因为其他原因?

4

1 回答 1

8

通过网络传输的数据只是一个字节流。您可以在任一端点为该字节流分配意义,但在网络上它没有意义。据我所知,每种语言都是如此,有些人只是选择在他们的标准库中抽象出来。

您可以使用二进制谷物等包(使用encodeanddecode函数)对发送的数据进行编码/解码。对于许多标准类型,如、、和,两者都带有其序列化类的实例(分别为Binary和) 。SerializeIntDoubleBool[]

于 2012-08-23T20:18:39.797 回答