ich habe folgendes Problem:
Ich wollte zur Übung mal einen Chat Programmieren.
Er ist in 2 Formulare aufgeteilt:
Eins, was als StartFormular fungiert, dort kann man seinen Nickname, IP adresse und die IP des ChatPartners eingeben.
Ein anderes, womit ich sozusagen Chatte. Es wird aufgerufen, wenn sich jemand Verbinden will oder wenn ich mich Verbinde mit jemanden.
Nun das Problem: Das Formular 2, also das Chatfenster, lässt sich einwandfrei öffnen, wenn ich mich Verbinden will. Aber wenn eine Verbindung kommt, öffnet es sich und hängt sich auf, also nichts geht mehr. Keine label oder Buttons sind zu sehen.
Hier der Code des Hauptformulars, da dort der Relevante Code vorhanden ist:
Public Class Hauptfenster Dim Nickname As String Dim EigeneIP As String Dim ThMessageEmpfDelegate As New Threading.ThreadStart(AddressOf standBy) Dim ThMessageEmpf As New Threading.Thread(ThMessageEmpfDelegate) Dim wartenServer As New clsSocketEmpfangen.clsSocketEmpfangen Dim startenServer As New clsSocketSenden.clsSocketSenden Private Sub btnVerbinden_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnVerbinden.Click If txtIP.Text = "" Then MsgBox("Du musst schon eine IP eingeben") Exit Sub End If Dim Chatfenster As New Chat startenServer.speichern(txtIP.Text, 15000) startenServer.senden(EigeneIP) startenServer.senden(Nickname) Chatfenster.starten(Nickname, txtIP.Text) End Sub Private Sub btnSpeichern_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnSpeichern.Click If txtEigeneIP.Text = "" Then MsgBox("Deine IP findest du unter Start/Ausfuehren/cmd/ipconfig") Exit Sub End If EigeneIP = txtEigeneIP.Text Nickname = txtNickname.Text btnVerbinden.Enabled = True wartenServer.starten(15000) ThMessageEmpf.Start() End Sub Private Sub standBy() Dim client As String Dim Nickname_remote As String While (True) If wartenServer.server.pending() Then Dim Chatfenster As New Chat client = wartenServer.Empfangen() Nickname_remote = wartenServer.Empfangen() Chatfenster.starten(Nickname, client) Chatfenster.Show() Else Threading.Thread.Sleep(10) End If End While End Sub Private Sub Hauptfenster_Closing(ByVal sender As Object, ByVal e As System.ComponentModel.CancelEventArgs) Handles MyBase.Closing ThMessageEmpf.Abort() End Sub End Class
Der Code der anscheinend den Fehler enthält befindet sich in der Sub "standBy()"
Wäre nett, wenn mir einer von euch helfen könnte
mfg
Hennieliminator
ps.: Sprache ist VB.net
Comment