2010-02-18 6 views
0

Je viens de commencer à expérimenter avec java aujourd'hui (j'ai de l'expérience avec javascript et PHP) et j'ai du mal à compiler ce code. J'utilise l'IDE NewBeans 6.8 sur Mac. J'utilise NewBeans IDE 6.8 sur Mac.Quel est le problème avec ce code?

Il dit simplement "Un ou plusieurs projets ont été compilés avec des erreurs."

Le problème a commencé quand j'ai essayé d'ajouter une fonction personnalisée dans

Voici le code (ignorer tous les commentaires).

import java.io.*; 
import java.net.*; 

public class simpleServer 
{ 
    public static void main(String args[]) 
    { 
    } 

    public void clientLoop() 
    { 
     // Message terminator 
     char EOF = (char)0x00; 

     try 
     { 
      // create a serverSocket connection on port 9999 
      ServerSocket s = new ServerSocket(4041); 

      System.out.println("Server started. Listening for connections..."); 
      // wait for incoming connections 
      Socket incoming = s.accept(); 

      BufferedReader data_in = new BufferedReader(
        new InputStreamReader(incoming.getInputStream())); 
      PrintWriter data_out = new PrintWriter(incoming.getOutputStream()); 

      data_out.println("Connected to Shipz Server." + EOF); 
      data_out.flush(); 

      boolean quit = false; 


      while (!quit) 
      { 
       String msg = data_in.readLine(); 

       if (msg == null) quit = true; 

       if (!msg.trim().equals("EXIT")) 
       { 
        if(msg.trim().equals("hShipzClient")) 
        { 
         System.out.println("Client Connected"); 
        } 

        if(msg.trim().equals("c")){ 
         System.out.println("Player collision"); 
         data_out.println("You crashed!"); 
        } 
        data_out.flush(); 
       } 
       else 
       { 
        quit = true; 
       } 
      } 
     } 
     catch (Exception e) 
     { 
      System.out.println("Connection lost"); 
     } 
    } 

Merci

+1

Je vais aller de l'avant et être le premier à demander – Malaxeur

+0

Etes-vous sûr qu'il ne sait pas quelles erreurs ont été trouvées? – Thirler

+3

Généralement Netbeans (et éclipse et intellij et ... vous obtenez le point) mettra en surbrillance/soulignement où exactement il croit que le problème est (sauf si vous avez manuellement disparu et désactivé cette fonctionnalité). Pouvez-vous nous dire où l'IDE pense que le problème est de sorte que je n'ai pas à copier/coller ce code dans le mien? – amischiefr

Répondre

3

je pense que vous manque une frisée de fin -brace "}" à la toute fin de votre programme.

+0

cela a fait l'affaire, merci. – Alex

1

Le code compile bien. Comme mentionné, une accolade finale est absente de ce que vous avez posté ici. Aussi, il est conventionnel de nommer des classes en camel-case avec la première lettre en majuscule.

3

1) Le code que vous avez collé manque une accolade fermante.
2) une fois que vous avez supprimé les lignes de votre méthode principale, vous remarquerez que vous ne pouvez pas appeler la méthode d'instance clientLoop() à partir d'une méthode statique i./e. principale().
2.1) Vous devez créer une instance de votre classe puis appeler clientLoop() par rapport à l'instance.
2.2) Mais avant de le faire, nous nommons habituellement nos classes avec une lettre majuscule en Java, voir http://java.sun.com/docs/codeconv/html/CodeConventions.doc8.html
2.3) Aussi, vous devriez essayer d'aligner vos accolades pour la lisibilité.
3) qui devrait vous donner quelque chose comme ceci: « avez-vous regardé vos erreurs de compilation »

public static void main(String args[]) { 
    SimpleServer ss = new SimpleServer(); 
    while (true) { 

     ss.clientLoop(); 
    } 

}