【发布时间】:2014-07-04 00:57:17
【问题描述】:
我正在创建服务器和客户端 Java 应用程序。我想创建一个数组来存储我的套接字。我正在使用 eclipse,当我输入这一行时:
Socket[] sockets = new Socket[3];
Eclipse 给我一个错误提示“资源类型 Socket[] 没有实现 java.lang.AutoCloseable”。
我该如何解决这个问题?
谢谢
Try/Catch 语句:
try (
Socket[] sockets = new Socket[3]; //Line giving me error
ServerSocket serverSocket =
new ServerSocket(Integer.parseInt(ip));
Socket clientSocket = serverSocket.accept();
ServerClient client = new ServerClient(clientSocket);
PrintWriter out =
new PrintWriter(clientSocket.getOutputStream(), true);
BufferedReader in = new BufferedReader(
new InputStreamReader(clientSocket.getInputStream()));
//User input
BufferedReader stdIn =
new BufferedReader(
new InputStreamReader(System.in))
) {
String inputLine;
while ((inputLine = in.readLine()) != null) {
out.println(inputLine);
}
} catch (IOException e) {
System.out.println("Exception caught when trying to listen on port "
+ port + " or listening for a connection");
System.out.println(e.getMessage());
continue;
} catch (Exception e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
【问题讨论】:
-
你是否对资源使用了 try catch 块?
-
我是 java 新手,所以我不太清楚这意味着什么。我编辑了帖子以显示它所在的 try/catch 语句。
-
socket api 是可以关闭的,正如我现在发现的那样,你能不能把括号里的东西拿出来试试,然后把它们放在 { this 之后看看会发生什么?
-
我没有看到你使用这个数组。
-
@PM77-1 错误不是关于 Socket,而是关于 Socket[]。
标签: java sockets networking