Socket Exception tritt auf - weiß nicht weiter

mike.raab

Mitglied
Hallo Leute,

bin noch relativ neu in Java, komm von C, und versuche einen Chat zu coden.
Es müsste eigentlich soweit alles funktionieren, nur das tut es nicht. Fehler ist im Anhang.

Java:
import java.net.*;
import java.io.*;
import java.util.*;

public class Chat_Client
{
	private String ip;							// Anlegen eines Strings für die IP
	private int port;							// Anlegen einer Var. für Port
												
	public Chat_Client (String ip,int port)		// Konstruktor für Chat_Client, Parameterport
	{											// ist Port
		this.ip=ip;								// IP   = ParameterIP
		this.port=port;							// Port = ParameterPort
	}											//
	
	private void startClient() throws Exception	// Client-Starten
	{											//
		Socket s;								// Neuer Socket
		String buffer, name, targetname, msg;	// Diverse Strings
		PrintWriter out;						// Ausgabe 
		BufferedReader in;						// Eingabe
		int n;									//
		s = new Socket(ip, port);				// S = Neuer Socket, mit Ip und Port als Parameter
		buffer = null;							// Buffer entleeren
		out = new PrintWriter(new DataOutputStream(s.getOutputStream())); // Neuer Printwriter, fed mit DataOutputStream
																		  // welcher mit s.getOutputStream fed ist
	    in = new BufferedReader(new InputStreamReader(System.in));        // Neuer BufferedReader, fed mit InputStreamReader
	    																  // welcher mit System.in fed ist
	    System.out.println("\n\nClient gestartet...\n\n");      		  // Ausgabe dass Client gesartet ist
	    name = null;      												  // Username wird auf null gesetzt
	    System.out.print("Client-Name eingeben: ");						  // Aufforderung für Namenseinabe
	    name = in.readLine();											  // Name wird eingelesen
	    
        System.out.println(name);										  // Name wird ausgegeben
        System.out.flush();												  // Puffer vom OutputStream löschen
        new ClientBody(s.getInputStream()).start();     				  // Thread wird gestartet, run() wird ausgeführt        
        System.out.println("Verwendung: <hostname> <nachricht>");	      // Erklärung
        System.out.println("Beispiel: Hanswurst Hallo wie gehts\n");	  // Erklärung
        System.out.println("Hinweis: Mit 'stop' beeden");				  // Erklärung	
        System.out.println(">#"); 									      // Wartet auf eingabe  
        
        while (!  (buffer = in.readLine())  .    equals("stop"))		  // Solange in buffer nicht "stop" steht
        {																  //
        	if ((n = buffer.indexOf(" ", 0)) < 0)						  // Findet Indizis von Hostname & Nachricht raus
        	{														      // und schaut, ob etwas drin steht
        		System.out.print("\nUngültige Eingabe!" +			      // Ungültige Eingabe
        				"Verwendung: <hostname> <nachricht>");			  // Richtig verwendung
        		continue;												  // Macht mit der while-Schleifer weiter
        	}															  //
        	
        	System.out.println(">#"); 	   								  // Wartet auf Eingabe
			targetname = buffer.substring(0, n);						  // Ziel-Host wird rausgefunden
			msg = buffer.substring(n + 1, buffer.length());   			  // Nachricht wird rausgefunden
			System.out.println(name + " sendet an " + 					  // Ausgabe des Empfängers und 
							targetname +": " + msg);					  // Nachricht 
			out.flush();   												  // Buffer entleeren
        }																  //
        
      System.out.println("\n\nClient gestoppt...\n\n");					  // "stop" wurde eingegeben, Ausgabe
      in.close();														  // in wird geschlossen	
      out.close();													      // out wird geschlossen
   }																      //
 
   public static void main(String[] x) throws Exception 				  // Hauptprogramm, Kommandozeilenpara = x
   {																	  //
      if (x.length != 2)												  // Wenn keine 2 Parameter übergeben werden
      {																	  // 
         System.out.println("#java Client <server-ip> <port>");			  // Richtige Verwendung
         System.exit(0);												  // Programm beenden
      }																      //
	  			       													  //
      new Chat_Client(x[0], Integer.parseInt(x[1])).startClient();        // x[0] = IP
   }																	  // x[1] = port
}																	      // Parse -> Input: 123a
 																	      // Non-Parsed: 123a  ||  Parsed: Error
 
class ClientBody extends Thread							    			  //
{																      	  //
   private InputStream i;												  // Neuer InputStream I, zum Einlesen
   																		  
   public ClientBody(InputStream i)										  // 
   {																      //
      this.i=i;															  //
   }																      //
   
   public void run()													  //
   {																      //
      String buffer;													  // String-Buffer
      BufferedReader in;												  //									  
      int n;															  //
      																	  //
      try																  //
      {															     	  //
         in = new BufferedReader(new InputStreamReader(i));				  // Neuer BufferedReader, gefüttert mit InputStream-
         																  // Reader, gefüttert mit i
         while ((buffer = in.readLine()) != null)						  // Solange im Buffer was drinsteht
         {            													  //
            if ((n = buffer.indexOf("users|", 0)) > -1)					  //
            {														      //
               buffer = buffer.substring(n + "users|".length(),			  //
            		   					buffer.length());				  // 
               buffer = buffer.replace('|', ',');						  // 
               System.out.println("\n\n==>Angemeldete User: "			  // 
            		   					+ buffer);            			  // 
            }															  //
            else														  //
            	System.out.println("\n\n==>Eingang von " + buffer);		  //
            System.out.print("\nText eingeben ->" +						  //
            		"				<zielrechner> <message># ");      	  //
         }																  //
		  																  //	
	   } catch (Exception e){}   										  //
	   
	}

}

mal mein Code.

Hat jemand Anmerkungen ( zur Lösung des Problems ) ?

MfG
 

Anhänge

  • Unbenannt.png
    Unbenannt.png
    52 KB · Aufrufe: 37
Ähnliche Java Themen
  Titel Forum Antworten Datum
T Webserviceaufruf verursacht eine Exception Netzwerkprogrammierung 3
R Socket FATAL EXCEPTION MAIN bei Socket based client/server app Netzwerkprogrammierung 2
D Exception Handling bei In/Outputsockets in eigenen Threads Netzwerkprogrammierung 1
A Cast Exception bei einfachem RMI Beispiel Netzwerkprogrammierung 3
K Socket Exception Connection reset Netzwerkprogrammierung 9
C ObjectInputReader wirft beim zweiten Aufruf eine Exception Netzwerkprogrammierung 3
M Socket TCP keep alive Exception wird nicht ausgelöst Netzwerkprogrammierung 11
G Exception: Connection reset by peer: socket write error Netzwerkprogrammierung 2
A Socket Socket Verbindung unterbrochen --> keine Exception Netzwerkprogrammierung 7
H Socket Closed Exception verhindern Netzwerkprogrammierung 3
M RMI unmarshaling exception ??? Netzwerkprogrammierung 2
D Socket Streams schliessen .. Exception gewollt? Netzwerkprogrammierung 4
K Socket Socket Exception Netzwerkprogrammierung 3
eQuest RMI Unserializable Exception Netzwerkprogrammierung 4
F Bekomme NoSuchElement Exception Netzwerkprogrammierung 5
S RMI Exception Netzwerkprogrammierung 2
T rmi ssl zu große Objekte übergeben -> Exception Netzwerkprogrammierung 10
clupus Exception beim Schließen eines Sockets Netzwerkprogrammierung 6
G Exception javax.naming.CommunicationException Netzwerkprogrammierung 16
G Nullpointer Exception - Multithreading Netzwerkprogrammierung 25
G XML-RPC -> Exception $Proxy0-Unknown Source-No such handl Netzwerkprogrammierung 8
T Exception serialisieren? Netzwerkprogrammierung 5
K öffnen des socket schlägt fehl -> ABER: keine exception . Netzwerkprogrammierung 2
M ois nicht null, aber ois.getObject liefer exception Netzwerkprogrammierung 3
R ObjectOutput- / ObjectInputStream Exception? Netzwerkprogrammierung 2
D EA-Exception Network Adapter macht probleme Netzwerkprogrammierung 2
F Java Mail . Exception java.lang.NoClassDefFoundError Netzwerkprogrammierung 2
M Exception in thread "main" java.lang.NoClassDefFou Netzwerkprogrammierung 2
J JavaMail Exception bei senden an anderen Server. Netzwerkprogrammierung 8
M schreiben auf geschlossenen Socket ohne Exception Netzwerkprogrammierung 6
R LINUX: getHostAddress() und getHostName() werfen Exception Netzwerkprogrammierung 6
8 PrintWriter Exception Netzwerkprogrammierung 3
D socket exception + timing probleme Netzwerkprogrammierung 2
A Exception bei Cookie lesen Netzwerkprogrammierung 2
B RESTful API weiß nicht weiter Netzwerkprogrammierung 2

Ähnliche Java Themen

Neue Themen


Oben