我今天刚开始尝试使用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");
}
}
由于
答案 0 :(得分:3)
我认为你在节目的最后部分缺少一个结束的大括号“}”。
答案 1 :(得分:3)
1)您粘贴的代码缺少右括号
2)一旦取消注释main方法中的行,你就会注意到你不能从静态方法i./e中调用实例方法clientLoop()。 main()中。
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();
}
}
答案 2 :(得分:1)
代码编译得很好。如上所述,您在此处发布的内容中缺少最后一个大括号。此外,传统上用驼峰式命名类,首字母大写。