2010-02-18 5 views
0

방금 ​​자바로 실험하기 시작했습니다 (자바 스크립트와 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

+0

당신은 오류가 발견되지 않는 곳이 있습니까? – Thirler

+3

일반적으로 Netbeans (및 eclipse 및 intellij 및 ... 요점을 얻음)는 강조 표시/문제의 원인을 정확히 설명합니다 (이 기능을 수동으로 없애고 사용하지 않는 경우 제외). IDE에서 문제점을 파악하여 코드를 복사/붙여 넣을 필요가 없다고 말할 수 있습니까? – amischiefr

답변

3

난 당신이 종료 곱슬 누락 생각 -brace "}"프로그램의 마지막 단계입니다.

+0

이 트릭, 감사합니다 않았다. – Alex

1

코드가 잘 컴파일됩니다. 언급했듯이 여기에 게시 한 내용에서 최종 중괄호가 누락되었습니다. 또한, 첫 번째 문자를 대문자로하여 낙타의 경우 클래스를 명명하는 것이 일반적입니다.

3

1) 붙여 넣은 코드에 닫는 중괄호가 없습니다.
2) main 메소드에서 줄의 주석을 제거하면 정적 메소드 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(); 
    } 

} 
관련 문제