bikerheinze
Goto Top

Netzwerkclient über TCP

Hallo,

ich habe mir ein kleines Tool unter VB.Net 2008 geschrieben mit dem man Nachrichten an einen anderen schicken kann.
Mein kleines Problem liegt darin, dass ich die Verbindung nicht schließen kann.
Wenn ich die Verbindung trenne und will sie wieder verbinden kommt der Fehler "Auf das verworfene Objekt kann nicht zugegriffen werden. Objektname: System.Net.Sockets.TcpClient."
Wie ich richtig die Verbindung trenne.
Kann mir einer Helfen.

Imports System.Net.Sockets
Imports System.Text
Imports System.Runtime.Remoting.Messaging

Public Class Form1

Private TCP_Client As New TcpClient
Dim bytes() As Byte

Private Stream As NetworkStream

Private Sub Form1_FormClosed(ByVal sender As Object, ByVal e As System.Windows.Forms.FormClosedEventArgs) Handles Me.FormClosed

'es wird nur gesendet wenn die verbindung steht
If TCP_Client.Connected = True Then
TCP_Client.Close()
End If

End Sub

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

Me.Show()
Me.Activate()
Me.Refresh()

End Sub

Private Sub onGetData(ByVal ar As System.IAsyncResult)

Dim clientdata As String = Encoding.ASCII.GetString(bytes)
Dim sendBytes As [Byte]() = Encoding.ASCII.GetBytes(clientdata)
Stream.Write(sendBytes, 0, sendBytes.Length)

End Sub

Private Sub CON_AN()

If TCP_Client.Connected = True Then
TXT_VERBINDUNG.Text = "Verbunden mit " + TXT_CLIENT.Text
TXT_VERBINDUNG.Refresh()
Else
TXT_VERBINDUNG.Text = "Keine Verbindung"
TXT_VERBINDUNG.Refresh()
End If

End Sub

Private Sub BUT_TRENNEN_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BUT_TRENNEN.Click

'es wird nur gesendet wenn die verbindung steht
If TCP_Client.Connected = True Then
TCP_Client.Close()
End If

Call CON_AN()

End Sub

Private Sub BUT_SENDEN_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BUT_SENDEN.Click

BUT_SENDEN.Enabled = False

'falls die verbindung nicht steht wird verbunden
If TCP_Client.Connected = False Then
'On Error Resume Next
TCP_Client.Connect(TXT_CLIENT.Text, xxxxx)
'On Error Resume Next
Stream = TCP_Client.GetStream
End If

'anzeigen ob eine Verbindung steht
Call CON_AN()

'es wird nur gesendet wenn die verbindung steht
If TCP_Client.Connected = True Then
Dim sendBytes As [Byte]() = Encoding.ASCII.GetBytes(TextBox1.Text)
Stream.Write(sendBytes, 0, sendBytes.Length)
Else
'ausgabe dass keine verbindung steht
MsgBox("-> Es steht keine Verbindung mit - " + TXT_CLIENT.Text + " <-")
End If

BUT_SENDEN.Enabled = True

End Sub
End Class

Content-Key: 98612

Url: https://administrator.de/contentid/98612

Printed on: April 23, 2024 at 09:04 o'clock