Network.Socket.ByteString和Network.Socket.ByteString.Lazy都有一个send函数。
Network.Socket.ByteString有一个sendTo函数,但是Network.Socket.ByteString.Lazy没有。
如何使用Network.Socket.ByteString的sendTo和Lazy.ByteString或Network.Socket.ByteString.Lazy的send函数。(即如何告诉它在哪里发送数据包。)
谁能推荐一个好的教程关于哈斯克尔的字符串,BytesStrings。Lazy.ByteStrings等等,因为我发现它们非常令人困惑(来自于Java/Python背景)。
发布于 2012-06-17 05:40:23
请注意,sendTo对发送的数据非常严格,因此没有真正的逻辑将其传递为惰性字节串。这就是为什么函数只存在于严格的字节串上。
发布于 2012-06-15 14:55:28
答案是建立一个新的功能:
import Data.ByteString as BS
import Data.ByteString.Lazy as LBS
lazyToStrictBS :: LBS.ByteString -> BS.ByteString
lazyToStrictBS x = BS.concat $ LBS.toChunks x并使用它将Lazy.ByteString转换为普通的ByteString。
这是相反的,所以当我在将来搜索这个问题时,我会发现它。
import Data.ByteString as BS
import Data.ByteString.Lazy as LBS
strictToLazyBS :: BS.ByteString -> LBS.ByteString
strictToLazyBS x = LBS.fromChunks [x] https://stackoverflow.com/questions/11052388
复制相似问题