(Offline)Chat Probleme

09/02/2016 00:00 FEELiNG.#1
Hallo,

in der Schule haben wir einen Chat benutzt der in Batch geschrieben war,
das Prinzip dahinter war das die Eingaben in einer Text Datei geschrieben wurde und diese in einem anderen Fenster als "Chatverlauf" dauernd neu geladen wurde und sich so aktualisiert hatte.

Ich wollte nun einen "etwas anspruchsvolleren" Chat machen. Vom Prinzip ist er gleich wie der alte, die eingaben werden in eine Text Datei geschrieben,gespeichert und in Loop neu-geladen.
Das Problem bei mir ist jedoch das gefühlt nur jede 2te Nachricht ankommt obwohl diese in der .txt Datei vorhanden ist und die Textbox sich refreshen sollte.

Hier der Code zum neu-laden
Dieser läuft in einem Timer mit einem Interval von einer Sekunde.
Gibt es andere Möglichkeiten?
09/02/2016 19:56 Else#2
Eine andere Möglichkeit, für einen Chat, wäre z.B. Sockets. Das ist weitaus effektiver, als das mit dem Polling, auf lange Sicht. Mit einer Schleife, die jede Sekunde den Inhalt aktualisiert, ist das wohl eher totaler Overkill.
09/03/2016 14:48 Ludder231#3
Quote:
Originally Posted by FEELiNG. View Post
Hallo,

in der Schule haben wir einen Chat benutzt der in Batch geschrieben war,
das Prinzip dahinter war das die Eingaben in einer Text Datei geschrieben wurde und diese in einem anderen Fenster als "Chatverlauf" dauernd neu geladen wurde und sich so aktualisiert hatte.

Ich wollte nun einen "etwas anspruchsvolleren" Chat machen. Vom Prinzip ist er gleich wie der alte, die eingaben werden in eine Text Datei geschrieben,gespeichert und in Loop neu-geladen.
Das Problem bei mir ist jedoch das gefühlt nur jede 2te Nachricht ankommt obwohl diese in der .txt Datei vorhanden ist und die Textbox sich refreshen sollte.

Hier der Code zum neu-laden
Dieser läuft in einem Timer mit einem Interval von einer Sekunde.
Gibt es andere Möglichkeiten?
Ich hatte sowas ähnliches bloß mit nem FTP Server. Totaler Mist. Im endeffekt war das komplizierter als nen vernünftiger TCP Socket.
09/04/2016 13:56 Shawak#4
Das Problem ist, dass du zweimal ReadLine aufrufst.

Probier es mal so

Code:
	txt_chat.Clear(); 
	using (StreamReader sr = new StreamReader(aktuellerchannel)) 
	{
		string line = null
		while (true) 
 		{
			line = sr.ReadLine();
			if(line == null) {
				break;
			}

			txt_chat.AppendText(line + "\r\n" ); 
		} 
 	}
Aber wie schon gesagt wäre ein vernünftiger TCP Chat sinnvoller.
09/04/2016 23:32 FEELiNG.#5
Quote:
Originally Posted by Shawak View Post
Das Problem ist, dass du zweimal ReadLine aufrufst.

Probier es mal so

Aber wie schon gesagt wäre ein vernünftiger TCP Chat sinnvoller.
Danke, das hat funktioniert, ich habe noch keine Erfahrungen mit TCP Sockets etc gesammelt,
[Only registered and activated users can see links. Click Here To Register...]
wäre dieses "Tutorial" empfehlenswert?
Ich habe nicht vor das nur zu Copy&Pasten
09/05/2016 01:47 Shawak#6
Joa sieht für den Anfang ganz okay aus, wobei das nicht wirklich ein Tutorial ist.
09/05/2016 18:06 FEELiNG.#7
Quote:
Originally Posted by Shawak View Post
Joa sieht für den Anfang ganz okay aus, wobei das nicht wirklich ein Tutorial ist.
Jo, hab es nur kurz überflogen, ein Tutorial an sich ist es mal nicht.
Ich werde mich zuerst mal an das TCP/Socket Thema einlesen und dann ein paar Sachen austesten.