Moin Community,
ich habe hier ein Programm, dass ich vor einigen Jahren mal benutzt hatte.
Ich habe den Code für Konsolen benutzt und nun möchte ich diesen Code gerne im Form nutzten...
Aber leider hängt sich das Form auf.
Wo liegt mein Fehler?
Spoiler anzeigen
und der Client
Spoiler anzeigen
ich habe hier ein Programm, dass ich vor einigen Jahren mal benutzt hatte.
Ich habe den Code für Konsolen benutzt und nun möchte ich diesen Code gerne im Form nutzten...
Aber leider hängt sich das Form auf.
Wo liegt mein Fehler?
VB.NET-Quellcode
- ' Muss auf richtigen Port muss dieselbe wie Port-Client will auf verbinden. Zuhören
- Const portNumber As Integer = 8000
- Dim tcpListener As New TcpListener(portNumber)
- tcpListener.Start()
- log.Items.Add("Warten auf Verbindung ...")
- Try
- ' Akzeptieren Sie die angemeldete Client-Verbindung und zurück
- ' Ein TcpClient für die Kommunikation initialisiert.
- Dim tcpClient As TcpClient = tcpListener.AcceptTcpClient()
- log.Items.Add("Verbindung angenommen.")
- ' Holen Sie sich den Strom
- Dim networkStream As NetworkStream = tcpClient.GetStream()
- ' Lesen Sie den Stream in ein Byte-Array
- Dim bytes(tcpClient.ReceiveBufferSize) As Byte
- networkStream.Read(bytes, 0, CInt(tcpClient.ReceiveBufferSize))
- ' Bringen Sie die Daten vom Client auf der Konsole empfangen.
- Dim clientdata As String = Encoding.ASCII.GetString(bytes)
- log.Items.Add(("Client sendet: " + clientdata))
- Dim responseString As String = "Verbunden mit Server."
- Dim sendBytes As [Byte]() = Encoding.ASCII.GetBytes(responseString)
- networkStream.Write(sendBytes, 0, sendBytes.Length)
- log.Items.Add(("Message gesendet /> : " + responseString))
- ' Jede Kommunikation mit dem Remote-Client über die TcpClient können Sie hier.
- ' Schließe TcpListener und TcpClient.
- tcpClient.Close()
- tcpListener.Stop()
- log.Items.Add("schließen")
- Catch e As Exception
- log.Items.Add(e.ToString())
- End Try
und der Client
VB.NET-Quellcode
- Dim tcpClient As New System.Net.Sockets.TcpClient()
- tcpClient.Connect("192.168.56.1", 8000)
- Dim networkStream As NetworkStream = tcpClient.GetStream()
- If networkStream.CanWrite And networkStream.CanRead Then
- ' Führen Sie eine einfache schreiben.
- Dim a As String = Console.ReadLine()
- Dim sendBytes As [Byte]() = Encoding.ASCII.GetBytes(a)
- networkStream.Write(sendBytes, 0, sendBytes.Length)
- ' Lesen Sie die NetworkStream in ein Byte-Puffer.
- Dim bytes(tcpClient.ReceiveBufferSize) As Byte
- networkStream.Read(bytes, 0, CInt(tcpClient.ReceiveBufferSize))
- ' Ausgabe der empfangenen Daten vom Host an die Konsole.
- Dim returndata As String = Encoding.ASCII.GetString(bytes)
- log.Items.Add(("Host zurückgegeben: " + returndata))
- Else
- If Not networkStream.CanRead Then
- log.Items.Add("Die Daten werden nicht in diesen Stream geschreiben")
- tcpClient.Close()
- Else
- If Not networkStream.CanWrite Then
- log.Items.Add("Keine Daten in diesem Stream")
- tcpClient.Close()
- End If
- End If
- End If
- ' Pause so Benutzer kann die Ausgabe der Konsole
- Main()