vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
sevDataGrid - Gönnen Sie Ihrem SQL-Kommando diesen krönenden Abschluß!  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2024
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

VB.NET - Fortgeschrittene
tcplistener empfängt nur ein mal und danach nicht mehr 
Autor: lastyle
Datum: 18.10.21 12:48

Hallo zusammen

Ich habe einen tcplistener in einem thread laufen. Damit möchte ich einen Client überwachen der connected, daten schickt und danach die connection droppt.

Sobald ein Client connected wird auch der komplette Datensatz empfangen und in eine textbox geschrieben, aber beim reconnect versuch kommt kein neuer Datensatz an. Bzw weiß ich noch nicht einmal ob überhaupt eine verbindung zustande kommt weil der tcplistener es nicht bemerkt hat das die connection gedroppt wurde.

Was mache ich falsch mit meinem code oder wie kann ich den connection drop auswerten und dann quasi bei null wieder abhören ?

Aktueller code ist

Imports System.Net.Sockets
Imports System.IO
Imports System.Net
Imports System.Text
Public Class Form1
    Dim stream As NetworkStream
    Dim streamw As StreamWriter
    Dim server As TcpListener
    Dim client As New TcpClient
    Dim ipendpoint As IPEndPoint = New IPEndPoint(IPAddress.Any, 1581)
    Dim t As New Threading.Thread(AddressOf Main)
    Dim datastring As String = Nothing
    Public bbsdata As String = Nothing
    Public bbsdataprevious As String = Nothing
 
    Sub Main()
        Try
            server = New TcpListener(ipendpoint)
            server.Start()
            client = server.AcceptTcpClient
            client.ReceiveBufferSize = 1024
            Dim ns As NetworkStream = client.GetStream
            Dim data(client.ReceiveBufferSize) As Byte
            datastring = ""
            '---read incoming stream; Read() is a blocking call---
            Dim numBytesRead As Integer = ns.Read(data, 0, CInt( _
              client.ReceiveBufferSize))
            Dim z As Integer = 0
            While (numBytesRead <> 0)
                datastring = Encoding.ASCII.GetString(data, 0, numBytesRead)
                System.Diagnostics.Debug.WriteLine(Encoding.ASCII.GetString( _
                  data, 0, numBytesRead))
                SetTextBoxInfo(datastring)
            End While
        Catch
        End Try
    End Sub
    Public Sub SetTextBoxInfo(stringValue As String)
        If stringValue <> bbsdataprevious Then
            bbsdataprevious = stringValue
            Me.BeginInvoke(Sub() Me.TextBox2.Text = stringValue)
            datastring = ""
            client.Close()
            stream.Close()
        Else
        End If
    End Sub
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As _
      System.EventArgs) Handles Button1.Click
        If Button1.Text = "Start" Then
            t.Start()
            Button1.Text = "Stop"
        Else
            client.Close()
            stream.Close()
 
            Button1.Text = "Start"
        End If
    End Sub
End Class
alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
tcplistener empfängt nur ein mal und danach nicht mehr413lastyle18.10.21 12:48
Re: tcplistener empfängt nur ein mal und danach nicht mehr217Kuno6018.10.21 13:54
Re: tcplistener empfängt nur ein mal und danach nicht mehr239lastyle18.10.21 20:18

Sie sind nicht angemeldet!
Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.

Einloggen  |  Neu registrieren

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

Copyright ©2000-2024 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel