【问题标题】:Java: can´t get ObjectInputStream from socketJava:无法从套接字获取 ObjectInputStream
【发布时间】:2014-04-17 04:52:38
【问题描述】:

我正在做 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");      
}

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

我能做错什么?

【问题讨论】:

    标签: java sockets objectoutputstream


    【解决方案1】:

    ObjectInputStream 等待传入的标头。在完全收到标题之前,您将被困在这一行:

    ObjectInputStream in = new ObjectInputStream(socket.getInputStream());
    

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

    更多信息请阅读javadoc

    【讨论】:

      猜你喜欢
      • 2017-09-06
      • 2013-06-27
      • 1970-01-01
      • 2012-12-22
      • 2016-06-28
      • 1970-01-01
      • 2018-05-23
      • 1970-01-01
      • 2016-07-12
      相关资源
      最近更新 更多