Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > .NET Frameworks (точка нет фреймворки) > Общие вопросы .NET
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 19.07.2012, 13:47   #1
an1s1
Пользователь
 
Регистрация: 02.07.2012
Сообщений: 20
По умолчанию Telnet клиент на сокетах

Писал свой клиент:

[VBNET]
Код:
Namespace Engine

    Public Class TelnetClient

        Private soc As Net.Sockets.Socket

        Public Sub Connect(ByVal host As String, ByVal port As Integer)
            soc = New Net.Sockets.Socket(Net.Sockets.AddressFamily.InterNetwork, Net.Sockets.SocketType.Stream, Net.Sockets.ProtocolType.Tcp)
            soc.Connect(host, port)
        End Sub

        Public Sub Send(ByVal data As String)
            soc.Send(System.Text.Encoding.UTF8.GetBytes(data))
        End Sub

        Public Function Receive() As String
            Dim buf(1023) As Byte
            Dim out As String = ""
            Dim count As Integer

            Do
                count = soc.Receive(buf, buf.Length, Net.Sockets.SocketFlags.None)
                out &= System.Text.Encoding.UTF8.GetString(buf)
            Loop While count = buf.Length

            Return out
        End Function

        Public Sub Close()
            soc.Close()
            soc = Nothing
        End Sub

    End Class

End Namespace

Module telnettest
    Sub test()
        Dim x As New Engine.TelnetClient
        x.Connect("pop.mail.ru", 110)
        With x
            .Send("user an1s1")
            Debug.Print("User:")
            Debug.Print(.Receive)

            .Send("pass ****")
            Debug.Print("Pwd:")
            Debug.Print(.Receive)

            .Send("list")
            Debug.Print("List:")
            Debug.Print(.Receive)

        End With
        x.Close()
    End Sub
End Module
[/VBNET]


Ответ на user приходит мгновенно, но на оба последующих вопроса ответов вообще не приходит. Более того, программа ожидает ответа на pass достаточно долгий промежуток времени. Пароль правильный(тем более, должна приходить ошибка, если пароль неправильный). Что я делаю не так? Заранее спасибо.
an1s1 вне форума Ответить с цитированием
Старый 19.07.2012, 17:38   #2
Петррр
Форумчанин
 
Аватар для Петррр
 
Регистрация: 02.09.2011
Сообщений: 336
По умолчанию

http://dotnettelnet.sourceforge.net/
Может стоит посмотреть готовые решения?
Если ты не можешь найти то, ради чего стоит жить, лучше найти то, за что стоит умереть
Петррр вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Telnet-клиент miluchka Общие вопросы C/C++ 0 30.04.2012 16:57
и опять о сокетах xil C# (си шарп) 1 30.09.2011 17:39
Статья: Низкоуровневое сетевое программирование. Пишем клиент/серверное приложение на сокетах Беркли oleg kutkov C/C++ Сетевое программирование 42 22.01.2011 00:35
Чат на сокетах yandzee Общие вопросы C/C++ 6 11.12.2010 14:50
Простейшие клиент-сервер на сокетах: почему ошибка 10060 kolchakA Общие вопросы C/C++ 7 01.12.2009 08:14