Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Netzwerkclient mit VB.Net 2008

Empfohlene Antworten

Veröffentlicht

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

Hallo Herr Wenk,

wie könnte ich dann die Verbindung beenden.

Habe nichts gefunden.

Bitte ein Bsp.

Danke

Gruß

Stefan Heinz

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.

Danke für die schnelle Hilfe.

Baue eine neue Verbindung vor jedem senden auf.

Gruß

Stefan Heinz

Archiv

Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.