Problem mit Windows Form

  • VB.NET

Es gibt 2 Antworten in diesem Thema. Der letzte Beitrag () ist von doci.

    Problem mit Windows Form

    hi

    ich habe mir eine programm in vb.net geschrieben das mir status infos zu meinem root liefert und noch andere funktionen kann.
    jetzt hatte ich die idee, eine socketverbindung zu meinem tool aufzubauen, ich kann mich auch verbinden aber die form reagiert nicht mehr.

    so wie ich den server starte, bleibt die form stehen und wartet auf die verbindung, ich möchte aber denoch an meinem programm lokal arbeiten und trozdem den server im hintergrund laufen lassen.

    was mache ich falsch?

    mein code für den server

    VB.NET-Quellcode

    1. Imports System.Net.Sockets
    2. Imports System.Text
    3. Module server
    4. Sub Main()
    5. ' Must listen on correct port- must be same as port client wants to connect on.
    6. Const portNumber As Integer = 8000
    7. Dim tcpListener As New TcpListener(portNumber)
    8. tcpListener.Start()
    9. label1.text = "Waiting for connection"
    10. 'Accept the pending client connection and return
    11. 'a TcpClient initialized for communication.
    12. Dim tcpClient As TcpClient = tcpListener.AcceptTcpClient()
    13. label1.text ="Connection accepted."
    14. ' Get the stream
    15. Dim networkStream As NetworkStream = tcpClient.GetStream()
    16. ' Read the stream into a byte array
    17. Dim bytes(tcpClient.ReceiveBufferSize) As Byte
    18. networkStream.Read(bytes, 0, CInt(tcpClient.ReceiveBufferSize))
    19. ' Return the data received from the client to the console.
    20. Dim clientdata As String = Encoding.ASCII.GetString(bytes)
    21. 'Console.WriteLine(("Client sent: " + clientdata))
    22. Dim responseString As String = "Connected to server."
    23. Dim sendBytes As [Byte]() = Encoding.ASCII.GetBytes(responseString)
    24. networkStream.Write(sendBytes, 0, sendBytes.Length)
    25. tcpClient.Close()
    26. tcpListener.Stop()
    27. End Sub
    28. End Module


    danke
    ähh? wasn das :)
    dein problem liegt hier an der zeile

    VB.NET-Quellcode

    1. Dim tcpClient As TcpClient = tcpListener.AcceptTcpClient()


    was ist, wenn kein client anfragt? dann hängt man halt

    mach ne abfrage

    VB.NET-Quellcode

    1. If TCPListener.Pending = True Then
    2. Dim tcpClient As TcpClient = tcpListener.AcceptTcpClient()
    3. der restliche code, der nur ablaufen soll, wenn ein client verbunden ist
    4. end if


    ps is ausm kopf geschrieben, also kann sein, das pending = true so nicht ganz richtig ist, aber so gehts aufjedenfall, musst etwas suchen vllt