Reputation: 7
So in mist of programing a program I have bee stuck after roughly 6 hours of research and fiddling. I cannot resolve this error.
Public Class Main
Private Sub txt1_TextChanged(sender As Object, e As EventArgs) Handles mstag.TextChanged
End Sub
Private Sub Label1_Click(sender As Object, e As EventArgs) Handles lbl1.Click
End Sub
Private Sub Main_Load(sender As Object, e As EventArgs) Handles MyBase.Load
End Sub
Private Sub devicepage_DocumentCompleted(sender As Object, e As WebBrowserDocumentCompletedEventArgs) Handles devicepage.DocumentCompleted
End Sub
Public Class myform
Private SIS As System.Net.Sockets.TcpClient
Private netdata As NetworkStream
Private Sub Run_Click(sender As Object, e As EventArgs) Handles Run.Click
Dim msnumber As String = mstag.Text
'Ping Code
Try
Dim ping As Ping = New Ping()
Dim ping2 As Ping = New Ping()
Dim ping3 As Ping = New Ping()
Dim ping4 As Ping = New Ping()
Dim pingreply As PingReply = ping.Send(mstag.Text + ".regent.edu")
Dim pingreply2 As PingReply = ping2.Send(mstag.Text + ".regent.edu")
Dim pingreply3 As PingReply = ping3.Send(mstag.Text + ".regent.edu")
Dim pingreply4 As PingReply = ping4.Send(mstag.Text + ".regent.edu")
Dim avgadd As Integer = pingreply.RoundtripTime + pingreply2.RoundtripTime + pingreply3.RoundtripTime + pingreply4.RoundtripTime
Dim avg As Integer = avgadd / 4
pingresults.Text &= "Ping Time: " & pingreply.RoundtripTime & "ms" & vbNewLine
pingresults.Text &= "Ping Time: " & pingreply2.RoundtripTime & "ms" & vbNewLine
pingresults.Text &= "Ping Time: " & pingreply3.RoundtripTime & "ms" & vbNewLine
pingresults.Text &= "Ping Time: " & pingreply4.RoundtripTime & "ms" & vbNewLine
pingresults.Text &= "Average Time: " & (avg) & "ms"
Catch err As Exception
pingresults.Text = "Ping Timeout"
End Try
'NSLOOKUP Code
Try
Dim p As New Process
With p.StartInfo
.FileName = "nslookup.exe"
.Arguments = mstag.Text
.CreateNoWindow = True
.RedirectStandardOutput = True
.RedirectStandardError = True
.UseShellExecute = False
End With
p.Start()
If p.WaitForExit(5000) Then
'Read Output
Dim reader As StreamReader = p.StandardOutput
Dim output As String = reader.ReadToEnd()
nslookupresults.Text = output
Else
'Failed
nslookupresults.Text = ("Failed: Timeout")
End If
Catch err As Exception
nslookupresults.Text = "Timeout. :("
End Try
'Telnet
SIS = New System.Net.Sockets.TcpClient
SIS.Connect(mstag.Text, 23)
netdata = SIS.GetStream()
If netdata.CanWrite And netdata.CanRead Then
Dim bytes(SIS.ReceiveBufferSize) As Byte
netdata.Read(bytes, 0, CInt(SIS.ReceiveBufferSize))
Dim returndata As String = Encoding.ASCII.GetString(bytes)
telnetout.Text = returndata
End If
End Sub
Public Sub sissend_Click(sender As Object, e As EventArgs) Handles sissend.Click
Dim myWriteBuffer As Byte() = Encoding.ASCII.GetBytes(telnetinput.Text)
netdata.Write(myWriteBuffer, 0, myWriteBuffer.Length)
Dim bytes(SIS.ReceiveBufferSize) As Byte
netdata.Read(bytes, 0, CInt(SIS.ReceiveBufferSize))
Dim returndata As String = Encoding.ASCII.GetString(bytes)
telnetout.Text = returndata
End Sub
End Class
The starred/Bold are the problematic pieces.
Updated to newest code from the entire project.
Upvotes: 0
Views: 1634
Reputation: 228
You would do well to never assign a variable the name of a class accessible by your code.
This code block was updated per comments.
Public Sub Run_Click(sender As Object, e As EventArgs) Handles Run.Click
'Telnet
Dim MYtcpClient As New System.Net.Sockets.TcpClient
MytcpClient.Connect(mstag.Text, 23)
Dim MyNetworkStream As NetworkStream = MYtcpClient.GetStream()
If MyNetworkStream.CanWrite And MyNetworkStream.CanRead Then
Dim bytes(MYtcpClient.ReceiveBufferSize) As Byte
MyNetworkStream.Read(bytes, 0, CInt(MYtcpClient.ReceiveBufferSize))
Dim returndata As String = Encoding.ASCII.GetString(bytes)
telnetout.Text = returndata
End If
End Sub
Also, the code below has no new instance of Networkstream or tcpclient and is trying to reference the class directly. I missed that when I first posted the answer. You'll need to create a new instance of each.
Public Sub sissend_Click(sender As Object, e As EventArgs) Handles sissend.Click
Dim MYtcpClient As New System.Net.Sockets.TcpClient
MytcpClient.Connect(mstag.Text, 23)
Dim MyNetworkStream As new NetworkStream
MyNetworkStream.Write(myWriteBuffer, 0, myWriteBuffer.Length)
Dim bytes(MYtcpClient.ReceiveBufferSize) As Byte
MyNetworkStream.Read(bytes, 0, CInt(MYtcpClient.ReceiveBufferSize))
Dim returndata As String = Encoding.ASCII.GetString(bytes)
telnetout.Text = returndata
End Sub
Per comments for long term connection
Public Class myForm
Private MYtcpClient As System.Net.Sockets.TcpClient
Private MyNetworkStream As NetworkStream
Public Sub Run_Click(sender As Object, e As EventArgs) Handles Run.Click
'Telnet
MYtcpClient = New System.Net.Sockets.TcpClient
MytcpClient.Connect(mstag.Text, 23)
MyNetworkStream = MYtcpClient.GetStream()
If MyNetworkStream.CanWrite And MyNetworkStream.CanRead Then
Dim bytes(MYtcpClient.ReceiveBufferSize) As Byte
MyNetworkStream.Read(bytes, 0, CInt(MYtcpClient.ReceiveBufferSize))
Dim returndata As String = Encoding.ASCII.GetString(bytes)
telnetout.Text = returndata
End If
End Sub
Public Sub sissend_Click(sender As Object, e As EventArgs) Handles sissend.Click
MyNetworkStream.Write(myWriteBuffer, 0, myWriteBuffer.Length)
Dim bytes(MYtcpClient.ReceiveBufferSize) As Byte
MyNetworkStream.Read(bytes, 0, CInt(MYtcpClient.ReceiveBufferSize))
Dim returndata As String = Encoding.ASCII.GetString(bytes)
telnetout.Text = returndata
End Sub
End Class
Public Class Main
Private Sub txt1_TextChanged(sender As Object, e As EventArgs) Handles mstag.TextChanged
End Sub
Private Sub Label1_Click(sender As Object, e As EventArgs) Handles lbl1.Click
End Sub
Private Sub Main_Load(sender As Object, e As EventArgs) Handles MyBase.Load
End Sub
Private Sub devicepage_DocumentCompleted(sender As Object, e As WebBrowserDocumentCompletedEventArgs) Handles devicepage.DocumentCompleted
End Sub
Private SIS As System.Net.Sockets.TcpClient
Private netdata As NetworkStream
Private Sub Run_Click(sender As Object, e As EventArgs) Handles Run.Click
Dim msnumber As String = mstag.Text
'Ping Code
Try
Dim ping As Ping = New Ping()
Dim ping2 As Ping = New Ping()
Dim ping3 As Ping = New Ping()
Dim ping4 As Ping = New Ping()
Dim pingreply As PingReply = ping.Send(mstag.Text + ".regent.edu")
Dim pingreply2 As PingReply = ping2.Send(mstag.Text + ".regent.edu")
Dim pingreply3 As PingReply = ping3.Send(mstag.Text + ".regent.edu")
Dim pingreply4 As PingReply = ping4.Send(mstag.Text + ".regent.edu")
Dim avgadd As Integer = pingreply.RoundtripTime + pingreply2.RoundtripTime + pingreply3.RoundtripTime + pingreply4.RoundtripTime
Dim avg As Integer = avgadd / 4
pingresults.Text &= "Ping Time: " & pingreply.RoundtripTime & "ms" & vbNewLine
pingresults.Text &= "Ping Time: " & pingreply2.RoundtripTime & "ms" & vbNewLine
pingresults.Text &= "Ping Time: " & pingreply3.RoundtripTime & "ms" & vbNewLine
pingresults.Text &= "Ping Time: " & pingreply4.RoundtripTime & "ms" & vbNewLine
pingresults.Text &= "Average Time: " & (avg) & "ms"
Catch err As Exception
pingresults.Text = "Ping Timeout"
End Try
'NSLOOKUP Code
Try
Dim p As New Process
With p.StartInfo
.FileName = "nslookup.exe"
.Arguments = mstag.Text
.CreateNoWindow = True
.RedirectStandardOutput = True
.RedirectStandardError = True
.UseShellExecute = False
End With
p.Start()
If p.WaitForExit(5000) Then
'Read Output
Dim reader As StreamReader = p.StandardOutput
Dim output As String = reader.ReadToEnd()
nslookupresults.Text = output
Else
'Failed
nslookupresults.Text = ("Failed: Timeout")
End If
Catch err As Exception
nslookupresults.Text = "Timeout. :("
End Try
'Telnet
SIS = New System.Net.Sockets.TcpClient
SIS.Connect(mstag.Text, 23)
netdata = SIS.GetStream()
If netdata.CanWrite And netdata.CanRead Then
Dim bytes(SIS.ReceiveBufferSize) As Byte
netdata.Read(bytes, 0, CInt(SIS.ReceiveBufferSize))
Dim returndata As String = Encoding.ASCII.GetString(bytes)
telnetout.Text = returndata
End If
End Sub
Public Sub sissend_Click(sender As Object, e As EventArgs) Handles sissend.Click
Dim myWriteBuffer As Byte() = Encoding.ASCII.GetBytes(telnetinput.Text)
netdata.Write(myWriteBuffer, 0, myWriteBuffer.Length)
Dim bytes(SIS.ReceiveBufferSize) As Byte
netdata.Read(bytes, 0, CInt(SIS.ReceiveBufferSize))
Dim returndata As String = Encoding.ASCII.GetString(bytes)
telnetout.Text = returndata
End Sub
End Class
Upvotes: 1