Haskell hGetLine 和空字符

标签 haskell io

我有一个套接字服务器,它通过 hGetLine 等待来自连接的输入。这在发送带有尾随换行符的消息时非常有效。我想要的是在接收到换行符或空字符时从缓冲区中抓取——将句柄的缓冲区模式设置为 NoBuffering 不会影响这一点,hGetLine 仍然挂起,直到出现\n。有没有一种简单的方法可以同时容纳换行符和空终止符?

最佳答案

您可能可以使用 hGetChar 或 hGetBufSome 旋转您自己的解决方案。我认为你会通过 hGetBufSome 获得更好的吞吐量。但是,看起来 hGetBufSome 没有为 Data.Text 实现,所以你可能被困在 System.IO 中。

http://hackage.haskell.org/packages/archive/base/latest/doc/html/System-IO.html#v:hGetBufSome

祝你好运

关于Haskell hGetLine 和空字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5158448/

相关文章:

haskell - 多路(玫瑰)树的结构归纳

delphi - 将数据写入I/O地址

c# - 有多个同时写入器(没有读取器)到一个文件。是否有可能在 .NET 中以高效的方式完成?

performance - VBA I/O 性能

list - Prolog 中是否有相当于 Haskell 的 enumFromTo 的东西?

haskell - Haskell:换位在字符串列表上

java Selector 是异步或非阻塞架构

fwrite & fclose 可以从两个线程并行调用相同的文件描述符吗?

haskell - 新的 GHC 功能——是我想象的吗?

haskell - 已知缓存的功能替代方案 "answers"