gpt4 book ai didi

networking - 为什么在 Haskell 中使用 Handle 而不是任何类型的网络?

转载 作者:行者123 更新时间:2023-12-03 16:34:23 26 4
gpt4 key购买 nike

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

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

最佳答案

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

您可以使用 binary 之类的包对发送的数据进行编码/解码或 cereal (使用 encodedecode 函数)。两者都带有其序列化类的实例(分别为 BinarySerialize),适用于许多标准类型,例如 IntDoubleBool[]

关于networking - 为什么在 Haskell 中使用 Handle 而不是任何类型的网络?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12099103/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com