Zum Inhalt springen

Netzwerkclient mit VB.Net 2008


Empfohlene Beiträge

Geschrieben

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

Geschrieben

Hi, soweit ich es im Kopf habe ist Close schon der richtige Weg die Verbindung zu beenden, wenn du danach wieder eine Connection aufbauen willst musst du lediglich über new eine neue Klasse erstellen, die alte existiert nicht mehr. An der Stelle also TCP_Client = New TcpClient verwenden und die Verbindung wieder aufbauen. (oder direkt die ganze Zeit geöffnet lassen)

Das Verhalten ist übrigens in der Regel bei .NET immer so, nach einem Form.Close(); kann das Formular auch nicht mehr verwendet werden.

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...