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:» на экране, но ничего не показывает?haskell basic telnet network socket example 2
Используя netcat, который вы, вероятно, должны научиться использовать для тестирования базовой связи, этот код подключается к серверу TCP-сервера. Он также повторил то, что я ввел в сервер 'nc'. Если он не работает для вашего сервера telnet, я предлагаю вам проверить очевидные вещи (порты, IP-адреса, сервер telnet и т. Д.). –
nc -l 23 работает для меня тоже, поэтому я предполагаю, что это означает, что telnetd ожидает какого-то рукопожатия. В любом случае, я попытаюсь выяснить, как работает протокол telnet, и задать еще один вопрос, если я застрял. Почему это невозможно обсуждать в одном вопросе, не будучи закрытым, выходит за меня. –
Не так ясно, что вы сделали домашнее задание здесь, что может способствовать тому, почему вы не получаете много положительного ответа. Такие вопросы, как «напишите мне код, который подключается к серверу telnet», не очень вежливы. Однако, возможно, вам понравится [RFC 854] (http://tools.ietf.org/html/rfc854), что также поможет вам сформулировать более конкретный вопрос. –