Java:无法从socket获取ObjectInputStream

use*_*372 3 java sockets objectoutputstream

我正在做java服务器客户端应用程序,我有问题.当我想让ObjectInputStream卡住时,我成功地获得了客户端的套接字.

码:

serverSocket = new ServerSocket(9999);

while(true){
    System.out.println("Waiting for player");
    Socket socket = serverSocket.accept();
    System.out.println("Player connected, waiting for command");

    ObjectInputStream in = new ObjectInputStream(socket.getInputStream());
    System.out.println("input created");      
}
Run Code Online (Sandbox Code Playgroud)

输出:
Waiting for player Player connected, waiting for command

我该怎么办?

Mar*_*kus 6

该ObjectInputStream传入头等待.直到标题被完全接收,你将被困在这一行:

ObjectInputStream in = new ObjectInputStream(socket.getInputStream());
Run Code Online (Sandbox Code Playgroud)

要解决此问题,您需要flush()在建立连接后立即在另一端(即服务器)上调用ObjectOutputStream.

有关更多信息,请阅读javadoc.