【问题标题】:Java: ServerSocket ErrorMessageJava:服务器套接字错误消息
【发布时间】:2017-09-14 19:36:41
【问题描述】:

我刚刚尝试实现我的第一个服务器,但 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) {

错误信息 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();
        }
    }
}

【问题讨论】:

  • 你得到什么样的错误?
  • 已解决。一个愚蠢的名字冲突是问题

标签: java server serversocket


【解决方案1】:

您自己的 ServerSocket 类与您尝试使用的类之间存在名称冲突。

叫它别的东西,不要那样做。

【讨论】:

    【解决方案2】:

    你应该重命名你的班级。

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

    【讨论】:

    • 以前从未犯过如此愚蠢的错误。谢谢你的回答
    猜你喜欢
    • 2015-06-21
    • 1970-01-01
    • 2023-04-01
    • 1970-01-01
    • 1970-01-01
    • 2017-04-15
    • 2021-12-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多