Что не так с этим кодом? - PullRequest
       1

Что не так с этим кодом?

0 голосов
/ 18 февраля 2010

Я только что начал экспериментировать с java (имею опыт работы с javascript и PHP), и у меня возникают проблемы при компиляции этого кода.

Я использую NewBeans IDE 6.8 на Mac.

В нем просто сказано«Один или несколько проектов были скомпилированы с ошибками.»

Проблема началась, когда я попытался добавить пользовательскую функцию в.

Вот код (игнорировать все комментарии):

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

Спасибо

Ответы [ 3 ]

3 голосов
/ 19 февраля 2010

1) В вставленном вами коде отсутствует закрывающая скобка.
2) как только вы раскомментируете строки в вашем основном методе, вы заметите, что вы не можете вызвать метод экземпляра clientLoop () из статического метода i./e. Основной ().
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();
    }

 }
3 голосов
/ 18 февраля 2010

я думаю, что вам не хватает конечной фигурной скобки "}" в самом конце вашей программы.

1 голос
/ 18 февраля 2010

Код компилируется нормально. Как уже упоминалось, последняя фигурная скобка отсутствует из того, что вы разместили здесь. Также принято называть классы в верблюжьем регистре с первой буквой в верхнем регистре.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...