haskell基本telnet网络套接字示例2

时间:2012-03-08 04:19:50

标签: haskell telnet

module Main where
import Network
import Network.Socket
import System.IO

main :: IO ()
main = withSocketsDo $ do
 addrInfos <- getAddrInfo Nothing (Just "localhost") (Just "23")
 s <- socket (addrFamily (head addrInfos)) Stream defaultProtocol
 connect s (addrAddress (head addrInfos))
 h <- socketToHandle s ReadWriteMode
 hSetBuffering h (BlockBuffering Nothing)

 l <- hGetLine h
 putStrLn l

我正在尝试制作一个如何登录的haskell示例,并发送接收一些硬编码的telnet行命令。到目前为止,我有类似的东西。我希望在屏幕上看到“login:”,但它没有显示任何内容?

1 个答案:

答案 0 :(得分:1)

不要使用BlockBuffering。使用NoBuffering。黑线鳕非常清楚BlockBuffering Nothing提供依赖于实现的缓冲,而不是缓冲。因此,缓冲可能会妨碍hGetLine功能。