Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/317.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sockets/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java套接字:程序在套接字处停止。getInputStream()是否有错误?_Java_Sockets_Serialization - Fatal编程技术网

Java套接字:程序在套接字处停止。getInputStream()是否有错误?

Java套接字:程序在套接字处停止。getInputStream()是否有错误?,java,sockets,serialization,Java,Sockets,Serialization,“输入流之前”是cmd行上的最后一个lifesign。没有抛出异常。为什么会这样?我不明白 args[0]是5000。 //编辑:flush没有帮助。这是因为如果InputStream为空,ObjectInputStream(InputStream in)-构造函数是一个阻塞调用 : 创建从指定的InputStream读取的ObjectInputStream。从流中读取序列化流头并进行验证。此构造函数将阻止,直到相应的ObjectOutputStream写入并刷新标头 可能, InetAddre

“输入流之前”是cmd行上的最后一个lifesign。没有抛出异常。为什么会这样?我不明白

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

这是因为如果InputStream为空,
ObjectInputStream(InputStream in)
-构造函数是一个阻塞调用

:

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

可能,

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());
可能返回null,但通过查看类文件,应该会返回错误。 我注意到的另一件事是,你声明:

link.getInputStream(); 
因此,您将ObjectInputStream声明为没有强制转换的ObjectOutputStream(在这里无论如何都不合适)

你应该试试:

ObjectInputStream out = new ObjectOutputStream(link.getOutputStream());
这应该可以工作,因为脚本可能会将System.out排队,但在初始化之前请注意错误


告诉我这是否有效:D

是否从调试器运行它?也许这会打断代码,让您了解发生了什么。@Brian它会在构造函数中自动连接。@user代码的最后一行不会编译<代码>。输入。。out=new..Output..显然,我的内存不足。我被纠正了:)另外:ObjectInputStream out=新的ObjectOutputStream(link.getOutputStream());因此,如果我首先在客户端和服务器端生成outputstream,应该可以工作了吗?有趣的。。。。我要试一试。谢谢,好的。如果我交换流的创建,它就会工作。就像下面写的一样,
ObjectInputStream-out
-这只是一个打字错误。thanks@all!非常基本的事情,但非常有必要知道。谢谢你救了我的命
ObjectOutputStream out = new ObjectOutputStream(link.getOutputStream());