Tag: objectinputstream objectoutputstream

SocketException:使用ObjectInputStream在服务器上重置连接

我试图绕过ObjectInputStream / ObjectOutputStream ,所以我创建了一个非常简单的服务器 – 客户端应用程序,客户端通过创建的流发送HashMap对象,服务器接收并打印出来。 这是我的服务器代码: import java.io.*; import java.net.*; public class Server { public static void main(String[] args) throws IOException, ClassNotFoundException { ServerSocket server = new ServerSocket(4444); while (true) { Socket socket = server.accept(); ObjectInputStream objIn = new ObjectInputStream(socket.getInputStream()); if (objIn.readObject() != null) { System.out.println(objIn.readObject()); } } } } 这是我的客户端代码: import java.io.*; import […]

ObjectInputStream / ObjectOutputStream工作不对

我有类:Client,Server和Background正在使用Player类。 我真的不明白为什么带有ObjectInputStream / ObjectOutputStream Client类无法正常工作。 我做得不好? 哪里是我的错? package Shooter2Dv27082013; public class Player implements Serializable{ …. public int x=10; public int y=10; …. } package Shooter2Dv27082013; public class Background extends JPanel implements ActionListener, Serializable { public int countCollisions=0; private int time = 20; // 0.02s Timer mainTimer = new Timer(time, this); …. Player p = new […]

服务器和客户端必须具有声明ObjectOutputStream和ObjectInputStream的反向序列吗?

在我的实验中, 如果服务器有这个: ObjectInputStream objectInputStream = new ObjectInputStream(socket.getInputStream()); ObjectOutputStream objectOutputStream = new ObjectOutputStream(socket.getOutputStream()); 然后客户端必须以相反的顺序执行此操作: ObjectOutputStream objectOutputStream = new ObjectOutputStream(socket.getOutputStream()); ObjectInputStream objectInputStream = new ObjectInputStream(socket.getInputStream()); 否则服务器和客户端将死锁。 这是什么原因? 它是否有正式的API规范?