2
我有一个表单,我可以让我选择一条线并重置线上的所有端口。这是通过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)
我一直在绕圈试图了解这一点。
我已经尝试过通过cmd.exe进行Telnet,但我不断回来出现错误并放弃了该路线。
我也见过使用代码在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