У меня есть форма, которую я создаю, что позволяет мне выбрать строку и сбросить весь порт на линии. Это делается через Telnet. Я понимаю, как использовать Socket и отправлять IP-адрес, с которым я хочу работать, но я не понимаю, отправляет команды для входа и сброса портов.Отправка команд в Telnet
Настройка заключается в том, что при выборе одного из дополнительных флажков для другой строки он вызывает частную подпрограмму для запуска строки перед запуском на следующем.
Я был в сети на несколько дней. Последний код, который я пробовал, был следующим:
Dim TelnetClient As TcpClient
Dim ThisStream As NetworkStream
Dim SendBuffer(128) As Byte
Dim ReadBuffer(128) As Byte
Dim ReturnVal As String
Dim ReturnLength As Integer
TelnetClient = New TcpClient("Ip Address", 23)
ThisStream = TelnetClient.GetStream
SendBuffer = System.Text.Encoding.ASCII.GetBytes("Username")
ThisStream.Write(SendBuffer, 0, SendBuffer.Length)
ReturnLength = ThisStream.Read(ReadBuffer, 0, ReadBuffer.Length)
ReturnVal = System.Text.Encoding.ASCII.GetString(ReadBuffer)
SendBuffer = System.Text.Encoding.ASCII.GetBytes("Password")
ThisStream.Write(SendBuffer, 0, SendBuffer.Length)
Я собираюсь по кругу, пытаясь понять это.
Я пробовал делать Telnet через cmd.exe, но я продолжаю возвращаться с ошибками и отказываться от этого маршрута.
Я также видел, используя код, чтобы найти слова в Telnet.
Пример:
If message.ToString.EndsWith("login:") Then
Await WriteStringAsync("username", stream
Но не 100% уверены в том, чтобы полностью адаптировать его к тому, что я могу использовать. Любая помощь приветствуется.
спасибо.
Редактировать: дополнительная информация.
У меня есть следующие в верхней части списка кодов
Imports System.IO
Imports System.Net
Imports System.Net.Sockets
Я новичок в использовании Telnet с vb.net. Однако почему это так сложно сделать в vb.net, а в Cmd.exe требуется всего шесть команд?
Вы должны смотреть на документацию протокола, который вы используете. Быстро глядя на код, вы не указываете длину данных, которые вы отправляете, обычно это делается с заголовком или каким-то образом заканчивает строку (нуль/пробел). Кроме того, вы предполагаете, что при чтении вы получаете всю необходимую информацию. Это неверно, чтение может возвращать только 1 байт за раз. –
Буду честно, я скопировал и попробовал повторное использование этого кода для себя. Я полностью потерян. Попытка исследовать, что делает каждая строка ... не очень далеко. – Alenhj