chatprogramm



  • hallo!

    Ich habe mich ein wenig in Sockets eingearbeitet und ein Chat Programm geschrieben.
    JEdoch tritt komischer weise ein Logischer Fehler auf.
    Ich erkläre mal mein Programm:

    Das Programm ist in einen Server und einen Client gegliedert, es können also nur diese 2 miteinander "chaten". Nun kann nur der Client dem Server eine Nachricht schreiben (ich wollte nicht das der Server dem Client eine Nachricht schreiben kann)

    SChreibt man mit dem Client dem Server die NAchricht "hey du", erscheint beim Server die Nachricht "hey du". Schreibt man nun jedoch noch ne Nachricht z.b. "hallo" erscheint beim Server nichts!
    Das lustige daran ist aber, wenn man nun noch eine Nachricht schreibt z.b. "test", dann erscheint diese Nachricht wieder.
    Schreibt man noch ne Nachricht, erscheint sie nicht mehr, schreibt man eine weitere Nachricht erscheint Sie wieder udn so weiter...

    Also die Übertraguns ist irgendwie nur zu 50% zuverlässig, obwohl ich ja über TCP sende. (Übertragungsgarantie)

    Nun poste ich mal den Quellcode vlg kann mir wer helfen?

    SERVER:

    using System;
    using System.Net.Sockets;
    
    namespace serverclient
    {
    	class Server
    	{
    		static void Main()
    		{
    			Console.WriteLine("Server gestartet...\n");
    			TcpListener tcpListener = new TcpListener( 4711 );
    			tcpListener.Start();
    
    			Socket socketForClient = tcpListener.AcceptSocket();
    
    				if(socketForClient.Connected)
    				{
    					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 = "Willkommen auf dem Server von Alexander Fend: Sie sind verbunden...\n";
    					streamWriter.WriteLine(thestring);
    					Console.WriteLine("Client ist verbunden");
    					streamWriter.Flush();
    					while(true)
    					{
    						thestring = streamReader.ReadLine();
    						Console.WriteLine(thestring);
    					}
    					streamReader.Close();
    					networkStream.Close();
    					streamWriter.Close();
    				}
    					socketForClient.Close();
    					Console.WriteLine("Verbindung terminiert - Drücken Sie Enter");
    
    				Console.ReadLine();
    
    		}
    	}
    }
    

    CLIENT:

    using System;
    using System.Net;
    using System.Net.Sockets;
    
    namespace Client
    {
    	class Client
    	{
    		static void Main()
    		{
    			string nachricht;	//ist der String um dem Server zu senden..
    			TcpClient socketForServer;
    			try
    			{
    				socketForServer = new TcpClient("localhost", 4711);
    				Console.WriteLine("Verbunden...");
    
    			}
    			catch
    			{
    				Console.WriteLine("Verbindungsfehler, der Server ist nicht bereit...");
    				Console.ReadLine();
    				return;
    			}
    
    			//jetzt die Stream Scheiße...
    			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;
    				{
    					outputString = streamReader.ReadLine();
    					Console.WriteLine(outputString);
    					Console.WriteLine("\n");
    					Console.WriteLine("Schreiben Sie dem Server eine Nachricht: ");
    
    					while(true)								//Wird unendlich ausgeführt
    					{
    						nachricht = Console.ReadLine();			//einlesen was dem Server gesendet wird
    						streamWriter.WriteLine(nachricht);		//das wird beim Server angezeigt!!!
    						streamWriter.Flush();
    						Console.ReadLine();
    					}
    				}
    			}
    			catch
    			{
    				Console.WriteLine("Fehler! Der Server ist offline");
    				Console.ReadLine();
    			}
    			networkStream.Close();
    		}
    	}
    }
    

    Danke, dafür dass ihr diesen Text durchlest und mir helft..
    MFG und ein gutes neues Jahr!



  • Debugger.



  • habe ich auch schon gemacht!
    komme aber nicht drauf wo der fehler ist!

    mfg



  • Hast du den Fehler wenigstens eingrenzen können? Tritt der Fehler denn beim Senden oder Empfangen auf?



  • gesendet wird..
    empfangen wird nciht...


Anmelden zum Antworten