Java套接字:程序停在socket.getInputStream()没有错误?

use*_*247 9 java sockets serialization

InetAddress host = InetAddress.getLocalHost();
Socket link = new Socket(host, Integer.parseInt(args[0]));
System.out.println("before input stream");
ObjectInputStream in = new ObjectInputStream(link.getInputStream());
System.out.println("before output stream");
ObjectInputStream out = new ObjectOutputStream(link.getOutputStream());
Run Code Online (Sandbox Code Playgroud)

"输入流之前"是cmd-line上的最后一个生命值.没有抛出异常.为什么会这样?我不明白......

args [0]是5000. //编辑:flush没有帮助.

tho*_*mas 18

这是因为ObjectInputStream(InputStream in)如果inputStream为空,则--constructor是一个阻塞调用.

Quote:

创建一个从指定的InputStream读取的ObjectInputStream.从流中读取序列化流头并进行验证.此构造函数将阻塞,直到相应的ObjectOutputStream已写入并刷新标头.

  • 因此,如果我首先在客户端和服务器端制作输出流,那应该可行吗?有趣.... 我会试一试。谢谢。 (2认同)