2017-09-14 123 views
-2

我刚刚尝试实现我的第一个服务器,但Java似乎无法识别Try-with-resources块中的ServerSocket构造函数。Java:ServerSocket ErrorMessage

以下代码有什么问题?

import java.io.DataInputStream; 
import java.io.DataOutputStream; 
import java.io.IOException; 
import java.io.InputStream; 
import java.io.OutputStream; 
import java.net.Socket; 

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

错误消息的Eclipse:

  • 的ServerSocket(INT)的构造是不确定的
  • 类型的ServerSocket是不可见的
  • 的资源没有实现AutoClosable
 try (ServerSocket serverSocket = new ServerSocket(7777)) { 
      Socket clientSocket = serverSocket.accept(); 

      InputStream in = clientSocket.getInputStream(); 
      OutputStream out = clientSocket.getOutputStream(); 

      DataInputStream dataIn = new DataInputStream(in); 
      DataOutputStream dataOut = new DataOutputStream(out); 

      String receivedMessage; 
      receivedMessage = dataIn.readUTF(); 
      System.out.println("Server received from Client: " + receivedMessage); 
      dataOut.writeUTF(receivedMessage); 

     } catch (IOException e) { 
      e.printStackTrace(); 
     } 
    } 
} 
+0

你会得到什么样的错误? –

+0

解决了。一个愚蠢的名字冲突是问题 – John

回答

0

您应该重命名您的班级。

它与JDK中的ServerSocket类冲突,这是您要在try-with-resources中使用的类。

+0

以前从未犯过这样一个愚蠢的错误。感谢你的回答 – John

0

你在你自己的ServerSocket类和你正在尝试使用的类之间有一个名字冲突。

称之为别的东西,不要这样做。