2010-02-18 225 views
0

我剛剛開始嘗試用java今天(有JavaScript和PHP的經驗),並且無法編譯此代碼。這段代碼有什麼問題?

我在Mac上使用NewBeans IDE 6.8。

它只是說「一個或多個項目編譯出錯。」

的問題開始了,當我嘗試添加自定義功能

下面的代碼(忽略所有評論):

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"); 
     } 
    } 

感謝

+1

我要繼續前進,併成爲第一個問 – Malaxeur 2010-02-18 20:51:31

+0

你確定它沒有找到哪個錯誤嗎? – Thirler 2010-02-18 20:52:26

+3

一般來說,Netbeans(以及eclipse和intellij以及...你明白了)會突出顯示/下劃線,它確切地認爲問題在哪裏(除非你手動去掉了這個功能)。你能告訴我們IDE在哪裏認爲問題是這樣,我不需要將該代碼複製/粘貼到我的代碼中? – amischiefr 2010-02-18 20:52:34

回答

3

我認爲你缺少的結束曲-brace「}」在程序的最後。

+0

這個伎倆,謝謝。 – Alex 2010-02-18 21:10:10

1

代碼編譯得很好。如上所述,您在此發佈的內容中缺少最終的大括號。此外,傳統上以駱駝案例命名課程,首字母大寫。

3

1)您粘貼的代碼缺少右大括號。
2)一旦你取消註釋主方法中的行,你會注意到你不能從靜態方法i./e調用實例方法clientLoop()。主要()。
2.1)您需要創建您的類的實例,然後調用clientLoop()對實例。 2.2)但是在你做之前,我們通常用java中的大寫字母命名我們的類,參見http://java.sun.com/docs/codeconv/html/CodeConventions.doc8.html
2.3)你也應該嘗試爲了可讀性而對齊你的括號。
3)應該給你這樣的事情:「有你看着你的編譯錯誤」

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

     ss.clientLoop(); 
    } 

}