java - 如何在java中接收socketServer上的对象

标签 java sockets

我想从客户端发送一个对象(数组)到服务器。我使用 ObjectInputStream 和 ObjectOutputStream。但是,这会调用一个错误,即这些方法未在 serverSocket 类中定义。 我该如何解决这种情况?`

public int[] readResponse() throws IOException, ClassNotFoundException{
    int[] x = new int[5];



    ObjectOutputStream cO = new ObjectOutputStream(serverSocket.getOutputStream()); //here is the error
    ObjectInputStream cI = new ObjectInputStream(serverSocket.getInputStream()); // here is the error

    cO.writeObject(x); 

     x = (int[]) cI.readObject();
     for (int i = 0; i < 5; i++){
         System.out.println(x[i]);
     }
     return x;
    }

最佳答案

java.net.ServerSocket 并不意味着用于实际的输入和输出;而是用于实际的输入和输出。它是一个套接字,用于在服务器上监听接受的传入连接请求,从而生成一个 java.net.Socket,然后用于读取和写入。

Socket socket = serverSocket.accept();
ObjectInputStream cI = 
     new ObjectInputStream(socket.getInputStream());

在客户端,通过调用构造函数创建 java.net.Socket,并通过地址连接到客户端。

Socket socket = new Socket( address, port );
ObjectOutputStream cO =
     new ObjectOutputStream(socket.getOutputStream());

关于java - 如何在java中接收socketServer上的对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30643865/

相关文章:

.net - .NET 中消息帧方法的优缺点

c - 为 winsock recvfrom 设置超时

java - 正则表达式替换为捕获重复组

Java定时器找不到符号

java - 表中 SWT Combo 的性能不佳

java - 减少代码冗余的设计 - Java/WebServices

python - 显示来自通过套接字发送的numpy Array的图像

c++ - Boost Asio - 服务器没有收到消息

python - 检查python套接字中的数据是否可用

Java如何在序列化过程中使用Jackson ObjectMapper连接Item类中的两个字段?