network stream?



  • Hallo!

    Habe folgendes Problem:
    Ich habe mir ne Server/Client Anwendung gebastelt, aber irgendwie kann der Client dem Server zwar Messages senden, der Server dem Client aber nicht.
    Ich poste jetzt einmal den gesamten Code um den Fehler leicht zu beheben.
    Hier ist der Server Code:

    using System;
    using System.Net.Sockets;
    using System.Net;
    using System.Threading;
    using System.IO;
    using System.Diagnostics;
    
    public class AsynchIOServer
    {
    	public static void Main()
    	{
    
    		StreamWriter uf = File.CreateText("C:\\log.doc");
    		uf.Close();
    		int bye = 0;
    
    			TcpListener tl = new TcpListener( 4711 );
    			tl.Start();      
    			Console.WriteLine("Server wurde gestartet");
    			Thread.Sleep(500);
    			Console.WriteLine("- Dateien einlesen...");
    			Thread.Sleep(1500);
    			Console.WriteLine("- Rechte auslesen...");
    			Thread.Sleep(900);
    			Console.WriteLine("- Befehle initialisieren...");
    			Thread.Sleep(600);
    			Console.WriteLine("- Socket starten...");
    
    		int i = 0;
    		while (i <= 5)
    		{
    			i++;
    			Console.Write("********");
    			Thread.Sleep(230);
    		}
    		Console.WriteLine(" ");
    
    			Socket socketForClient = tl.AcceptSocket();
    
    		if (socketForClient.Connected)
    		{
    			try
    			{
    				Console.WriteLine("Client verbunden");
    			}
    			catch
    			{
    				Console.WriteLine("Unerwarteter Fehler - Server konnte keine Nachricht auf dem Bildschirm absenden");
    				FileStream fehler = new FileStream("C:\\log.doc", FileMode.Append);
    				StreamWriter p = new StreamWriter(fehler);
    				p.WriteLine("Unerwarteter Fehler - Der Server konnte keine Nachricht auf den Bildschirm bringen");
    				p.Close();
    				fehler.Close();
    			}
    
    			NetworkStream networkStream = new NetworkStream(socketForClient);
    			System.IO.StreamWriter streamWriter =
    				new System.IO.StreamWriter(networkStream);
    
    			System.IO.StreamReader streamReader =
    				new System.IO.StreamReader(networkStream);
    
    			string theString = "Herzlich Willkommen auf dem Server von Alexander";
    			streamWriter.WriteLine(theString);			
    			streamWriter.Flush();
    
    			while (bye == 0)
    			{
    
    				theString = streamReader.ReadLine();
    
    				Console.WriteLine(theString);
    				if(theString == "/kill Server")
    				{
    					bye = 1;
    					try
    					{
    						streamReader.Close();
    						networkStream.Close();
    						streamWriter.Close();
    						Console.WriteLine("Client hat killing Signal gesendet...");
    						FileStream fehler = new FileStream("C:\\log.doc", FileMode.Append);
    						StreamWriter p = new StreamWriter(fehler);
    						p.WriteLine("Der Client hat ein killing Signal gesendet: /kill Server");
    						p.Close();
    						fehler.Close();
    						Thread.Sleep(1000);
    					}
    					catch
    					{
    						FileStream fehler = new FileStream("C:\\log.doc", FileMode.Append);
    						StreamWriter p = new StreamWriter(fehler);
    						p.WriteLine("Der Client hat ein killing Signal gesendet: /kill Server");
    						p.Close();
    						fehler.Close();
    						return;
    					}
    					return;
    
    				}
    				if(theString.ToString().StartsWith("Copy:")==true)
    				{
    					string Quelle = " ";
    					string Ziel = " ";
    
    					string[] x = new string[1];
    					string[] s = theString.Split(new char[] {' '});
    					foreach (string sp in s) 
    					{
    
    						if (sp.Trim() != "")
    						{
    							for(int iy=0; iy<2; iy++)
    							{
    								//Console.WriteLine(sp);
    								//x[iy]=sp;
    								if (iy == 0)
    								{
    									Ziel = s[1];
    
    								}
    								if (iy == 1)
    								{
    									Quelle = s[2];
    
    								}
    							}
    						}
    					}
    					try
    					{
    						File.Copy(Ziel, Quelle, true);
    						FileStream fehler = new FileStream("C:\\log.doc", FileMode.Append);
    						StreamWriter p = new StreamWriter(fehler);
    						p.WriteLine("Dateien wurden kopiert: "+Ziel+" und "+Quelle);
    						p.Close();
    						fehler.Close();
    					}
    					catch
    					{
    						Console.WriteLine("Die Datei wurde nicht gefunden");
    						FileStream fehler = new FileStream("C:\\log.doc", FileMode.Append);
    						StreamWriter p = new StreamWriter(fehler);
    						p.WriteLine("Die Datei wurde nicht gefunden oder der Zielpfad ist nicht vorhanden");
    						p.Close();
    						fehler.Close();
    					}
    				}
    				if (theString == "/Herunterfahren Server")
    				{
    					StreamWriter u = File.CreateText("C:\\sw.bat");
    					u.WriteLine("shutdown -s -t 60");
    					u.Close();
    					Process.Start("C:\\sw.bat");
    					Thread.Sleep(500);
    					FileStream fehler = new FileStream("C:\\log.doc", FileMode.Append);
    					StreamWriter p = new StreamWriter(fehler);
    					p.WriteLine("Der Client hat ein Shutdown eingeleitet: /Herunterfahren Server");
    					p.Close();
    					fehler.Close();
    					try
    					{
    						File.Delete("C:\\sw.bat");
    						FileStream fehler2 = new FileStream("C:\\log.doc", FileMode.Append);
    						StreamWriter p2 = new StreamWriter(fehler2);
    						p2.WriteLine("Die Datei C:\\sw.bat wurde erfolgreich gelöscht");
    						p2.Close();
    						fehler2.Close();
    					}
    					catch
    					{
    						FileStream fehler1 = new FileStream("C:\\log.doc", FileMode.Append);
    						StreamWriter p1 = new StreamWriter(fehler1);
    						p1.WriteLine("Die Datei C:\\sw.bat konnte nicht gelöscht werden, da sie von einem anderen Prozess verwendet wird");
    						p1.Close();
    						fehler1.Close();
    					}
    				}
    				if (theString == "/Create Bat" || theString == "/create bat" || theString == "/Create bat" || theString == "/create Bat")
    				{
    
    				}
    				if (theString.ToString().StartsWith("/move")==true)
    				{
    					string Quelle = " ";
    					string Ziel = " ";
    
    					string[] x = new string[1];
    					string[] s = theString.Split(new char[] {' '});
    					foreach (string sp in s) 
    					{
    
    						if (sp.Trim() != "")
    						{
    							for(int iy=0; iy<2; iy++)
    							{
    								//Console.WriteLine(sp);
    								//x[iy]=sp;
    								if (iy == 0)
    								{
    									Ziel = s[1];
    
    								}
    								if (iy == 1)
    								{
    									Quelle = s[2];
    
    								}
    							}
    						}
    					}
    					try
    					{
    						File.Move(Ziel, Quelle);
    						FileStream fehler = new FileStream("C:\\log.doc", FileMode.Append);
    						StreamWriter p = new StreamWriter(fehler);
    						p.WriteLine("Dateien wurden verschoben: "+Ziel+" und "+Quelle);
    						p.Close();
    						fehler.Close();
    					}
    					catch
    					{
    						Console.WriteLine("Die Datei wurde nicht gefunden");
    						FileStream fehler = new FileStream("C:\\log.doc", FileMode.Append);
    						StreamWriter p = new StreamWriter(fehler);
    						p.WriteLine("Die Datei wurde nicht gefunden oder der Zielpfad ist nicht vorhanden");
    						p.Close();
    						fehler.Close();
    					}	
    				}
    				if(theString == "/Dir Server")
    				{
    
    					FileStream fehler = new FileStream("C:\\log.doc", FileMode.Append);
    					StreamWriter p = new StreamWriter(fehler);
    					p.WriteLine("Der Client hat ein Dir Befehl gesendet: /Dir Server");
    					p.Close();
    					fehler.Close();
    
    					streamWriter.WriteLine(theString);			
    					streamWriter.Flush();
    
    					string zeilee;
    					StreamWriter dos = File.CreateText("C:\\dir.bat");
    					dos.WriteLine("dir>C:\\x.txt");
    					dos.Close();
    					Process.Start("C:\\dir.bat");
    
    					Thread.Sleep(800);
    					try
    					{
    						StreamReader reader = File.OpenText("C:\\x.txt"); // Datei öffnen
    						for (int k = 0; -1 != reader.Peek(); k++) // Wenn Peek -1 zurückgibt ist die Datei fertiggelesen
    						{
    							zeilee = reader.ReadLine();
    							Console.WriteLine(zeilee);
    							streamWriter.WriteLine(theString);
    						}
    
    						FileStream fehleru = new FileStream("C:\\log.doc", FileMode.Append);
    						StreamWriter pu = new StreamWriter(fehleru);
    						pu.WriteLine("Dir Befehl wurde erfolgreich ausgeführt");
    						pu.Close();
    						fehleru.Close();
    					}
    					catch
    					{
    						Console.WriteLine("Fehler: Datei wurde nicht gefunden...");
    						FileStream fehlerz = new FileStream("C:\\log.doc", FileMode.Append);
    						StreamWriter pz = new StreamWriter(fehlerz);
    						pz.WriteLine("Unerwarteter Fehler: Der Dir Inhalt konnte nicht gelesen werden");
    						pz.Close();
    						fehlerz.Close();
    					}
    
    					Thread.Sleep(500);
    					try
    					{
    						File.Delete("C:\\dir.bat");
    						File.Delete("C:\\x.txt");
    						FileStream fehlerg = new FileStream("C:\\log.doc", FileMode.Append);
    						StreamWriter pg = new StreamWriter(fehlerg);
    						pg.WriteLine("Die Dateien C:\\dir.bat und C:\\x.txt wurden erfolgreich gelöscht");
    						pg.Close();
    						fehlerg.Close();
    					}
    					catch
    					{
    						FileStream fehlerx = new FileStream("C:\\log.doc", FileMode.Append);
    						StreamWriter px = new StreamWriter(fehlerx);
    						px.WriteLine("Die Dateien C:\\dir.bat und C:\\x.txt konnten nicht gelöscht werden");
    						px.Close();
    						fehlerx.Close();
    					}
    				}
    				if (theString == "/Neustart Server")
    				{
    					FileStream fehler = new FileStream("C:\\log.doc", FileMode.Append);
    					StreamWriter p = new StreamWriter(fehler);
    					p.WriteLine("Der Client hat einen Reboot Befehl gesendet: /Neustart Server");
    					p.Close();
    					fehler.Close();
    
    					StreamWriter io = File.CreateText("C:\\restart.bat");
    					io.WriteLine("shutdown -r -t 60");
    					io.Close();
    					Process.Start("C:\\restart.bat");
    					Thread.Sleep(700);
    					try
    					{
    						File.Delete("C:\\restart.bat");
    						FileStream fehlery = new FileStream("C:\\log.doc", FileMode.Append);
    						StreamWriter py = new StreamWriter(fehlery);
    						py.WriteLine("Die Datei C:\\restart.bat wurde erfolgreich gelöscht");
    						py.Close();
    						fehlery.Close();
    					}
    					catch
    					{
    						FileStream fehlerq = new FileStream("C:\\log.doc", FileMode.Append);
    						StreamWriter pq = new StreamWriter(fehlerq);
    						pq.WriteLine("Die Datei C:\\restart.bat konnte nicht gelöscht werden");
    						pq.Close();
    						fehlerq.Close();
    					}
    				}
    				if (theString == "/Tree Server")
    				{
    
    					FileStream fehler = new FileStream("C:\\log.doc", FileMode.Append);
    					StreamWriter p = new StreamWriter(fehler);
    					p.WriteLine("Der Client hat einen Tree Befehl gesendet: /Tree Server");
    					p.Close();
    					fehler.Close();
    
    					string re;
    					StreamWriter u = File.CreateText("C:\\tree1.bat");
    					u.WriteLine("tree>C:\\tree.txt");
    					u.Close();
    					Process.Start("C:\\tree1.bat");
    					Thread.Sleep(800);
    					StreamReader ip = new StreamReader("C:\\tree.txt");
    					for (int kk = 0; -1 != ip.Peek(); kk++) // Wenn Peek -1 zurückgibt ist die Datei fertiggelesen
    					{
    						re = ip.ReadLine();
    						Console.WriteLine(re);
    						streamWriter.WriteLine(theString);
    					}
    					try
    					{
    						Thread.Sleep(500);
    						File.Delete("C:\\tree1.bat");
    						File.Delete("C:\\tree.txt");
    					}
    					catch
    					{
    						Console.WriteLine("Lösch Befehl konnte nicht ausgeführt werden...");
    					}
    				}
    				if (theString == "/Datum Server")
    				{
    
    					FileStream fehlerr = new FileStream("C:\\log.doc", FileMode.Append);
    					StreamWriter pr = new StreamWriter(fehlerr);
    					pr.WriteLine("Unerwarteter Fehler - Der Server konnte keine Nachricht auf den Bildschirm bringen");
    					pr.Close();
    					fehlerr.Close();
    
    					string zeile;
    					StreamWriter s = File.CreateText("C:\\datum.bat");
    					s.WriteLine("date/T >C:\\d.txt");
    					s.Close();
    					Process.Start("C:\\datum.bat");
    					Thread.Sleep(500);
    					StreamReader reader = File.OpenText("C:\\d.txt"); // Datei öffnen
    					for (int k = 0; -1 != reader.Peek(); k++) // Wenn Peek -1 zurückgibt ist die Datei fertiggelesen
    					{
    						zeile = reader.ReadLine();
    						Console.WriteLine(zeile);
    					}
    
    					Thread.Sleep(700);
    					try
    					{
    						File.Delete("C:\\datum.bat");
    						File.Delete("C:\\d.txt");
    						reader.Close();
    					}
    					catch
    					{
    
    					}
    
    				}
    				if (theString == "format" || theString == "ping" || theString == "sysvar" || theString == "WSUX" || theString == "FORMAT" || theString == "Format")
    				{
    					Console.WriteLine("Bad_Parameter_Error ");
    				}
    
    				if (theString == "/status Server")
    				{
    					Console.WriteLine("Connection vorhanden");
    					Console.WriteLine("Keine Fehler vorhanden");
    					Console.WriteLine("Log ist vorhanden");
    				}
    
    				FileStream uss = new FileStream("C:\\Code.bat", FileMode.Append);
    				StreamWriter w = new StreamWriter(uss);
    				w.WriteLine(theString);
    				w.Close();
    				uss.Close();
    
    				FileStream fehlere = new FileStream("C:\\log.doc", FileMode.Append);
    				StreamWriter pe = new StreamWriter(fehlere);
    				pe.WriteLine(theString);
    				pe.Close();
    				fehlere.Close();
    
    			}
    
    				//hier kommt der andere Teil rein, sollte keine If anweisung ausgelöst werden sein
    
    				//ende des .bat coding teil
    
    				streamReader.Close();
    				networkStream.Close();
    				streamWriter.Close();
    			}
    
    			socketForClient.Close();
    			Console.WriteLine("Connection verloren...");
    			Thread.Sleep(3000);
    		}
    	}
    

    und hier der Clientseitige Code:

    using System;
    using System.Net.Sockets;
    using System.Net;
    using System.IO;
    
    public class Client
    {
    	static public void Main( string[] Args )
    	{
    		int l = 0;
    		int k = 0;
    		string first = " ";
    		//erst wird ne log.txt geschrieben
    		//fehler werden hier protokolliert
    		Console.WriteLine("Willkommen lieber Benutzer! Client wurde gestartet!");
    		Console.WriteLine("Mit '/help' werden alle Befehle aufgelistet...\n");
    		while (first != "/o" || first != "/close")
    		{
    			first = Console.ReadLine();
    
    			if (first == "/help")
    			{
    				Console.WriteLine("--------------------------------------------------------------------------------");
    				Console.WriteLine("Willkommen zur aktuellen Client/Server Hilfe: \n");
    				Console.WriteLine("/log");
    				Console.WriteLine("Damit wird die Log-Datei abgerufen, etliche Fehler werden in dieser Datei gespeichert um später analysiert zu werden...");
    				Console.WriteLine("");
    				Console.WriteLine("/close");
    				Console.WriteLine("Der Client wird mit diesem Befehl heruntergefahren. Beim Server wird eine Connection_Closed Exception ausgelöst, die normalerweise auch im Log mitgeschrieben wird...");
    				Console.WriteLine("");
    				Console.WriteLine("/analyse");
    				Console.WriteLine("Immer dann, wenn ein Fehler auftritt gibt es dazu eine Exception - wird eine Datei nicht gefunden wird eine FileNotFound Exception ausgelöst. Diese Exception können mit diesem Befehl betrachtet werden...");
    				Console.WriteLine("");
    				Console.WriteLine("/help");
    				Console.WriteLine("Damit wird die Hilfe aufgerufen, die Hilfe bietet einen Überblick über alle Befehle...");
    
    				Console.WriteLine("--------------------------------------------------------------------------------");
    			}
    			if (first == "/analyse")
    			{
    				Console.WriteLine("+ File_Not_Found_Error");
    				Console.WriteLine("Dieser Fehler tritt dann auf, wenn eine externe Datei nicht gefunden wird. Dies kann viele möglichen Ursachen haben: Der Benutzer könnte die Datei gelöscht habe, das System könnte die Datei blockiert haben. Ein Neustart hilft eigentlich so gut wie immer...");
    				Console.WriteLine("");
    				Console.WriteLine("+ File_Work_Error");
    				Console.WriteLine("Dieser Fehler tritt sehr oft auf, nämlich dann, wenn ein Kopierbefehl, Movebefehl, Renamebefehl fehlschlug. Dies hat auf das Programm keine Auswirkungen.");
    				Console.WriteLine("");
    				Console.WriteLine("+ Connection_Error");
    				Console.WriteLine("Dieser Fehler ist dafür da, um Verbindungsfehler zu protokollieren, diese Fehler können vom Client oder vom Server ausgelöst werden. Eine genaue Analyse dieser Fehler ist sehr schwer. Mögliche Ursachen:");
    				Console.WriteLine("Eine Firewall blockt den Server/Client");
    				Console.WriteLine("Die Portnummer zwischen Server/Client stimmt nicht überein");
    				Console.WriteLine("Die IP stimmt nicht");
    				Console.WriteLine("Der Server ist offline");
    				Console.WriteLine("Der Client ist offline");
    				Console.WriteLine("Es besteht keine Netzwerkverbindung");
    				Console.WriteLine("");
    				Console.WriteLine("Code_Error");
    				Console.WriteLine("Ein Fehler der so gut wie nie auftritt; Der Fehler besagt nur, dass eine externe Anwendung, die vom Server gestartet wurde, nicht reagiert hat oder mit einem Fehler beendet werden. Installieren Sie den Server neu, sollte dieser Fehler öfters auftreten...");
    				Console.WriteLine("");
    				Console.WriteLine("Read_Write_Error");
    				Console.WriteLine("Sollte eine Text-Datei nicht gelesen oder geschrieben werden dürfen, gibts diesen Fehler");
    				Console.WriteLine("");
    				Console.WriteLine("Password_Error");
    				Console.WriteLine("Das Passwort stimmt, des Servers hat eine ungültige Eigenschaft oder der Benutzer hat versucht ein falsches Passwort zu verwenden. Dieser Fehler kann auch auftreten, wenn das Programm eine 'Brute_Force_Exception' auslöst.");
    				Console.WriteLine("");
    				Console.WriteLine("Brute_Force_Exception");
    				Console.WriteLine("Sollte ein 'Hacker' versuchen das Passwort des Servers zu knacken (v.a. mit einer BruteForce Attacke), wird diese Exception ausgelöst. Der Server terminiert sich dann von selbst und zeigt dem Benutzer eine Messages Box an, mit einer Warnung das ein Versuch gewagt wurde sein Passwort zu knacken...");
    				Console.WriteLine("");
    				Console.WriteLine("Bad_Parameter_Error");
    				Console.WriteLine("Dieser Fehler taucht eher selten auf und zwar nur dann, wenn der User 'verbotene Wörter' an den Server sendet. Dieses Programm kennt 4 'verbotene Wörter', die vom User nicht benutzt werden dürfen:");
    				Console.WriteLine("- format");
    				Console.WriteLine("- sysvar");
    				Console.WriteLine("- WSUX");
    				Console.WriteLine("- ping");
    				Console.WriteLine("");
    				Console.WriteLine("Conection_Repel_Error");
    				Console.WriteLine("Wenn nach dem 5ten Verbindungsaufbauversuch eine 'Server_Offline' Exception ausgelöst wird, wird dieser Fehler aktiv");
    				Console.WriteLine("");
    				Console.WriteLine("Server_Offline_Error");
    				Console.WriteLine("Der Server ist nicht erreichbar");
    				Console.WriteLine("");
    				Console.WriteLine("Firewall_Detection_Error");
    				Console.WriteLine("Das Programm hat eine Firewall gefunden, die die Verbindung blockiert, es wird eine Messages Box mit der Info ausgegeben...");
    			}
    			if (first == "/o" || first == "/open")
    			{
    				goto topo;
    			}
    		}
    		topo:
    		if (first == "/o")
    		{
    			FileStream zuu= new FileStream("C:\\log.txt", FileMode.Append);
    			StreamWriter ior = new StreamWriter(zuu);
    
    			ior.Close();
    			zuu.Close();
    
    			TcpClient socketForServer;
    		top:
    
    			try
    			{
    				socketForServer = new TcpClient("localhost", 4711);
    
    			}
    			catch
    			{
    				FileStream zu= new FileStream("C:\\log.txt", FileMode.Append);
    				StreamWriter io = new StreamWriter(zu);
    				io.Write("	Fehler: Socket konnte nicht gestartet werden. - Port 4711 scheint belegt zu sein oder Server ist offline");
    				io.Close();
    				zu.Close();
    
    				Console.WriteLine("Fehler: Connection konnte nicht hergestellt werden (Conection_Error)");
    				if (l == 4)
    				{
    					Console.WriteLine("Programm wird beendet (Conection_Repel_Error)");
    
    					FileStream z= new FileStream("C:\\log.txt", FileMode.Append);
    					StreamWriter i = new StreamWriter(z);
    					i.Write("	Fehler: Programm wurde nach dem 5ten Verbindungsfehler wegen Exception: 'No_Request_Line' beendet");
    					i.Close();
    					z.Close();
    				}
    				Console.ReadLine();
    				if (l <= 3)
    				{
    					k = l+2;
    					Console.WriteLine("Versuch "+k);
    					l++;
    
    					goto top;
    				}
    				return;
    			}
    
    			NetworkStream networkStream = socketForServer.GetStream();
    
    			System.IO.StreamReader streamReader =
    				new System.IO.StreamReader(networkStream);
    
    			System.IO.StreamWriter streamWriter =
    				new System.IO.StreamWriter(networkStream);
    
    			try
    			{
    				string outputString;
    				string eingabe = "Error!!! hier darf das programm nicht ankommen!!! sollte diese meldung angezeigt werden programm deinsatallieren und neu installieren!!!!!!!!";
    
    				// read the data from the host and display it
    
    			{
    
    				outputString = streamReader.ReadLine();
    
    				Console.WriteLine(outputString);
    				Console.WriteLine("Warte auf Befehle: ");
    				while (true)
    				{
    					NetworkStream networkStream1 = socketForServer.GetStream();
    					System.IO.StreamReader streamReader1 =
    						new System.IO.StreamReader(networkStream1);
    					System.IO.StreamWriter streamWriter1 =
    						new System.IO.StreamWriter(networkStream1);
    
    					eingabe = Console.ReadLine();
    					streamWriter.WriteLine(eingabe);
    					streamWriter.Flush();
    
    					if (eingabe == "/close")
    					{
    						return;
    					}	
    					if (eingabe == "format" || eingabe == "ping" || eingabe == "sysvar" || eingabe == "WSUX" || eingabe == "FORMAT" || eingabe == "Format")
    					{
    						Console.WriteLine("Bad_Parameter_Error");
    					}
    					if (eingabe == "/help")
    					{
    						Console.WriteLine("--------------------------------------------------------------------------------");
    						Console.WriteLine("Willkommen zur aktuellen Client/Server Hilfe: \n");
    						Console.WriteLine("/log");
    						Console.WriteLine("Damit wird die Log-Datei abgerufen, etliche Fehler werden in dieser Datei gespeichert um später analysiert zu werden...");
    						Console.WriteLine("");
    						Console.WriteLine("/close");
    						Console.WriteLine("Der Client wird mit diesem Befehl heruntergefahren. Beim Server wird eine Connection_Closed Exception ausgelöst, die normalerweise auch im Log mitgeschrieben wird...");
    						Console.WriteLine("");
    						Console.WriteLine("/analyse");
    						Console.WriteLine("Immer dann, wenn ein Fehler auftritt gibt es dazu eine Exception - wird eine Datei nicht gefunden wird eine FileNotFound Exception ausgelöst. Diese Exception können mit diesem Befehl betrachtet werden...");
    						Console.WriteLine("");
    						Console.WriteLine("/help");
    						Console.WriteLine("Damit wird die Hilfe aufgerufen, die Hilfe bietet einen Überblick über alle Befehle...");
    
    						Console.WriteLine("--------------------------------------------------------------------------------");
    					}
    					if (eingabe == "/analyse")
    					{
    						Console.WriteLine("+ File_Not_Found_Error");
    						Console.WriteLine("Dieser Fehler tritt dann auf, wenn eine externe Datei nicht gefunden wird. Dies kann viele möglichen Ursachen haben: Der Benutzer könnte die Datei gelöscht habe, das System könnte die Datei blockiert haben. Ein Neustart hilft eigentlich so gut wie immer...");
    						Console.WriteLine("");
    						Console.WriteLine("+ File_Work_Error");
    						Console.WriteLine("Dieser Fehler tritt sehr oft auf, nämlich dann, wenn ein Kopierbefehl, Movebefehl, Renamebefehl fehlschlug. Dies hat auf das Programm keine Auswirkungen.");
    						Console.WriteLine("");
    						Console.WriteLine("+ Connection_Error");
    						Console.WriteLine("Dieser Fehler ist dafür da, um Verbindungsfehler zu protokollieren, diese Fehler können vom Client oder vom Server ausgelöst werden. Eine genaue Analyse dieser Fehler ist sehr schwer. Mögliche Ursachen:");
    						Console.WriteLine("Eine Firewall blockt den Server/Client");
    						Console.WriteLine("Die Portnummer zwischen Server/Client stimmt nicht überein");
    						Console.WriteLine("Die IP stimmt nicht");
    						Console.WriteLine("Der Server ist offline");
    						Console.WriteLine("Der Client ist offline");
    						Console.WriteLine("Es besteht keine Netzwerkverbindung");
    						Console.WriteLine("");
    						Console.WriteLine("Code_Error");
    						Console.WriteLine("Ein Fehler der so gut wie nie auftritt; Der Fehler besagt nur, dass eine externe Anwendung, die vom Server gestartet wurde, nicht reagiert hat oder mit einem Fehler beendet werden. Installieren Sie den Server neu, sollte dieser Fehler öfters auftreten...");
    						Console.WriteLine("");
    						Console.WriteLine("Read_Write_Error");
    						Console.WriteLine("Sollte eine Text-Datei nicht gelesen oder geschrieben werden dürfen, gibts diesen Fehler");
    						Console.WriteLine("");
    						Console.WriteLine("Password_Error");
    						Console.WriteLine("Das Passwort stimmt, des Servers hat eine ungültige Eigenschaft oder der Benutzer hat versucht ein falsches Passwort zu verwenden. Dieser Fehler kann auch auftreten, wenn das Programm eine 'Brute_Force_Exception' auslöst.");
    						Console.WriteLine("");
    						Console.WriteLine("Brute_Force_Exception");
    						Console.WriteLine("Sollte ein 'Hacker' versuchen das Passwort des Servers zu knacken (v.a. mit einer BruteForce Attacke), wird diese Exception ausgelöst. Der Server terminiert sich dann von selbst und zeigt dem Benutzer eine Messages Box an, mit einer Warnung das ein Versuch gewagt wurde sein Passwort zu knacken...");
    						Console.WriteLine("");
    						Console.WriteLine("Bad_Parameter_Error");
    						Console.WriteLine("Dieser Fehler taucht eher selten auf und zwar nur dann, wenn der User 'verbotene Wörter' an den Server sendet. Dieses Programm kennt 4 'verbotene Wörter', die vom User nicht benutzt werden dürfen:");
    						Console.WriteLine("- format");
    						Console.WriteLine("- sysvar");
    						Console.WriteLine("- WSUX");
    						Console.WriteLine("- ping");
    						Console.WriteLine("");
    						Console.WriteLine("Conection_Repel_Error");
    						Console.WriteLine("Wenn nach dem 5ten Verbindungsaufbauversuch eine 'Server_Offline' Exception ausgelöst wird, wird dieser Fehler aktiv");
    						Console.WriteLine("");
    						Console.WriteLine("Server_Offline_Error");
    						Console.WriteLine("Der Server ist nicht erreichbar");
    						Console.WriteLine("");
    						Console.WriteLine("Firewall_Detection_Error");
    						Console.WriteLine("Das Programm hat eine Firewall gefunden, die die Verbindung blockiert, es wird eine Messages Box mit der Info ausgegeben...");
    					}
    					if (eingabe == "#echo")
    					{
    						Console.WriteLine("Bat Datei zum schreiben ist geöffnet, warte auf Befehle...");
    					}
    					if(eingabe == "/log")
    					{
    
    						try
    						{
    							FileStream o = new FileStream("C:\\log.txt", FileMode.Open);
    							StreamReader p = new StreamReader(o);
    							string zeile = p.ReadLine();
    							while(zeile != null)
    							{
    								zeile = p.ReadLine();
    								Console.WriteLine(zeile);
    							}
    							if (zeile == " ")
    							{
    								Console.WriteLine("Es wurden keine Fehler auf der Client-Seite gefunden");
    							}
    							p.Close();
    							o.Close();
    						}
    						catch
    						{
    							Console.WriteLine("Es wurde keine log.txt Datei gefunden (File_Not_Found_Error)");
    
    							FileStream zu= new FileStream("C:\\log.txt", FileMode.Append);
    							StreamWriter io = new StreamWriter(zu);
    							io.Write("	Fehler: Die Datei C:\\log.txt scheint nicht vorhanden zu sein");
    							io.Close();
    							zu.Close();
    						}
    					}
    				}
    				Console.ReadLine();
    
    			}
    
    			}
    
    			catch
    			{
    				Console.WriteLine("Daten vom Server konnten nicht empfangen werden - Server muss offline sein");
    				Console.WriteLine("Fehler: E450 - Server nicht erreichbar (Connection_Error)");
    				FileStream zu= new FileStream("C:\\log.txt", FileMode.Append);
    				StreamWriter io = new StreamWriter(zu);
    				io.Write("	Fehler: Es wurden Daten vom Server erwartet - diese konnten nicht empfangen werden - Server muss offline sein");
    				io.Close();
    				zu.Close();
    
    				Console.ReadLine();
    
    			}
    
    			// tidy up
    			Console.WriteLine("Client erfolgreich geschlossen...");
    			try
    			{
    				networkStream.Close();
    			}
    			catch
    			{
    				Console.WriteLine("Unerwarteter Fehler trat auf: (File_Work_Error / Code_Error / Read_Write_Error)");
    			}
    			finally
    			{
    				networkStream.Close();
    			}
    		}
    	} 
    }
    

    Wenn der Client verbunden ist, wird folgendes angezeigt: "Herzlich Willkommen auf dem Server von Alexander". Soweit so gut. Jedoch sollte, wenn man den Befehl "/Dir Server" eingibt doch auch noch die Nachricht kommen, dies passiert jedoch nicht und ich weiß einfach nicht wo ich den Fehler mache... 😞 kann mir bitte wer helfen?

    Wünsche euch noch einen schönen Abend.
    Danke für das Lesen
    MFG alex



  • Warum postest du soviel Code?



  • Dir ist auch klar das man Code in Funktionen auslagern sollte und in C# kann man auch strings in switches verwenden, bietet sich ehe an als lauter ifs



  • ja ok, das weiß ich schon das programm ist ja noch nicht fertig und erst wenns fertig ist mahc ich das mit den funktionen, ich komme ja soweit mit.
    aber meine frage bleibt unbeantwortet, könntet ihr vlg nicht auf meine frage zu sprechen kommen?

    mfg


Anmelden zum Antworten