Automatische Weiterleitung

  • VB.NET

Es gibt 3 Antworten in diesem Thema. Der letzte Beitrag () ist von aPENDIx.

    Automatische Weiterleitung

    Hallo,

    ich habe ein Problem mit der Automatischen Anzeige der Daten die über den Socket empfangen werden.
    Die empfangenen Daten sollen automatisch in die ListBox geschrieben werden, momentan werden sie nur per Button klick in die ListBox geschrieben.
    Hat einer von euch da eine Idee?

    VB.NET-Quellcode

    1. Imports System.Net.Sockets
    2. Imports System.Text
    3. Public Class Form1
    4. Dim clientSocket As New System.Net.Sockets.TcpClient()
    5. Dim serverStream As NetworkStream
    6. Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    7. msg("Client Started")
    8. clientSocket.Connect("127.0.0.1", 9300)
    9. Label1.Text = "Server Connected ..."
    10. End Sub
    11. Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    12. End Sub
    13. Sub msg(ByVal mesg As String)
    14. ListBox1.Items.Insert(0, mesg)
    15. End Sub
    16. Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
    17. Dim serverStream As NetworkStream = clientSocket.GetStream()
    18. Dim inStream(10024) As Byte
    19. serverStream.Read(inStream, 0, CInt(clientSocket.ReceiveBufferSize))
    20. Dim returndata As String = System.Text.Encoding.ASCII.GetString(inStream)
    21. msg(returndata)
    22. End Sub
    23. Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
    24. clientSocket.Close()
    25. End Sub
    26. End Class
    Neuen Thread erstellen der neben dem GUI-Thread arbeitet. In diesem eine Schleife laufen lassen die, falls sich Daten in dem Stream befinden, per Delegaten die ListBox threadsicher updatet.

    Das lässt sich alles ergooglen. Falls du eine spezifische Frage hast kannst du diese gern stellen, nur bitte kein "hä?!? was is eine thread??" ;)
    Mit einer Schleife. In diese Schleife kommt das Readen.
    Das alles packst du dann in einen seperaten Thread. Der Thread-Übergang muss natürlich gesichert werden.


    Übrigens: Der Stream eines Clienten ändert sich nicht. Die erste Zeile bei Button2_Click solltest du also nur einmal, nach dem Verbindungsaufbau ausführen.