我有一个套接字服务器,它通过 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/