Hallo,
ich hab ne kleine Client Server Apllication geschrieben die über den TCPListener und TCPClient komuniziert. Allerdings hab ich das Problem das wenn ich den Server starte und dieser lauscht, ich nach einigen Sekunden nicht mehr auf meine Form zugreifen kann. Wenn ich sie verschiebe erscheint die Sanduhr es oben in der Titelleiste steht keine Rückmeldung !?
Mir scheint als ob da irgendwas schief geht wenn der Server nach folgender Zeile steht und wartet: TcpClient c = listener.AcceptTcpClient ();
Hat da einer ne Idee ??? Unten der Code:
static void Main()
{
Application.Run(new Form1());
}
private void button1_Click(object sender, System.EventArgs e)
{
// Listener initialisieren
TcpListener listener = new TcpListener(4711);
// Listener starten
listener.Start ();
// Warten bis ein Client die Verbindung wünscht
lstevents.Items.Add("Server listen on Port '4711'");
lstevents.Update();
while(true)
{
TcpClient c = listener.AcceptTcpClient ();
// Stream für lesen und schreiben holen
StreamReader inStream = new StreamReader ( c.GetStream () );
String input = inStream.ReadLine ();
lstevents.Items.Add(input);
lstevents.Update();
// Verbindung schließen
c.Close ();
}
// Listener beenden
listener.Stop ();
}
Edit by Programmierhans: CSHARP-Tags eingefügt
Hallo eurofreddy,
erstmal wärs ganz net wenn du deinen Code in den hierfür gegebenen tag schreibst.
Du musst deinen Listener in einem Thread ausführen. Wie man Threads benutzt, kannst du hier im Forum nachlesen. Suche einfach mal nach Thread.
Es ist toll jemand zu sein, der nichts von der persönlichen Meinung Anderer hält. - frisch-live.de
Hallo eurofreddy,
frisch hat ja den Ansatz schon genannt. Beispielcode gibt es in TCP/IP Daten senden/empfangen
herbivore