Haskell hGetLine и нулевой символ - PullRequest
4 голосов
/ 01 марта 2011

У меня есть сервер сокетов, который ожидает ввода от соединения через hGetLine. Это прекрасно работает, когда сообщения отправляются с завершающим символом новой строки. То, что я хотел бы, это получить из буфера при получении новой строки или нулевого символа - установка режима буфера дескриптора на NoBuffering не влияет на это, hGetLine по-прежнему зависает, пока не появится \ n. Есть ли простой способ размещения как новых, так и нулевых терминаторов?

1 Ответ

1 голос
/ 01 марта 2011

Вероятно, вы можете раскрутить собственное решение, используя либо hGetChar, либо hGetBufSome.Я думаю, что вы получите лучший результат благодаря hGetBufSome.Однако похоже, что hGetBufSome не реализован для Data.Text, поэтому вы, вероятно, застряли в System.IO.

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

Удачи

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...