我刚刚尝试实现我的第一个服务器,但Java似乎在try-with-resources块中无法识别我的ServerSocket构造函数。
以下代码有什么问题?
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) {
错误消息日食:
- Serversocket(int) 的构造函数未定义
- 类型服务器套接字不可见
- 资源未实现自动关闭
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();
}
}
}
您自己的ServerSocket
类和您尝试使用的类之间存在名称冲突。
称它为别的东西,不要那样做。
你应该重命名你的类。
它与 JDK 中的 ServerSocket 类冲突,这是您希望在资源试用中使用的类。