我想从客户端发送一个对象(数组)到服务器。我使用 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/