为什么对象流的初始化顺序在java网络编程中很重要?
根据我的教授提供的以下信息:为什么对象流的初始化顺序在java网络编程中很重要?,java,serialization,network-programming,Java,Serialization,Network Programming,根据我的教授提供的以下信息: 客户端创建ObjectOutputStream和ObjectInputStream对象来发送请求和接收回复。CalculateClient构造函数是: public CalculateClient( String host, int port ) throws IOException { /* determine the address of the server and connect to it */ serverHost = Inet
客户端创建
ObjectOutputStream
和ObjectInputStream
对象来发送请求和接收回复。CalculateClient
构造函数是:
public CalculateClient( String host, int port )
throws IOException
{
/* determine the address of the server and connect to it */
serverHost = InetAddress.getByName( host );
serverPort = port;
calculate = new Socket( serverHost, serverPort );
OutputStream out = calculate.getOutputStream();
request = new ObjectOutputStream(
new BufferedOutputStream( out ));
request.flush();
// ObjectInputStream blocks until
// the connected side flushes its ObjectOutputStream
InputStream in = calculate.getInputStream();
reply = new ObjectInputStream( in );
}
在网络应用中,当使用对象流时,输入和输出套接字流的构造顺序很重要。必须首先创建ObjectOutputStream
。然后应该冲洗它。然后可以创建ObjectInputStream
他没有详细说明原因。为什么这是真的?这在你发布的代码注释中有解释,不是吗 //ObjectInputStream阻止,直到
//连接端刷新其ObjectOutputStream 因此,如果您尝试创建
ObjectInputStream
,构造函数将等待相应的ObjectOutputStream
的flush()
方法被调用。既然你还没有创建它,猜猜会发生什么
作为问这个问题的替代方法,您可以简单地切换创建顺序并观察结果。可以说,这对你来说花费更少的精力,而且作为奖励,你已经学会了如何解决问题并进行批判性思考。这在你发布的代码评论中有解释,不是吗 //ObjectInputStream阻止,直到
//连接端刷新其ObjectOutputStream 因此,如果您尝试创建
ObjectInputStream
,构造函数将等待相应的ObjectOutputStream
的flush()
方法被调用。既然你还没有创建它,猜猜会发生什么
作为问这个问题的替代方法,您可以简单地切换创建顺序并观察结果。可以说,这对你来说花费更少的精力,而且作为奖励,你已经学会了如何解决问题并进行批判性思考。这在你发布的代码评论中有解释,不是吗 //ObjectInputStream阻止,直到
//连接端刷新其ObjectOutputStream 因此,如果您尝试创建
ObjectInputStream
,构造函数将等待相应的ObjectOutputStream
的flush()
方法被调用。既然你还没有创建它,猜猜会发生什么
作为问这个问题的替代方法,您可以简单地切换创建顺序并观察结果。可以说,这对你来说花费更少的精力,而且作为奖励,你已经学会了如何解决问题并进行批判性思考。这在你发布的代码评论中有解释,不是吗 //ObjectInputStream阻止,直到
//连接端刷新其ObjectOutputStream 因此,如果您尝试创建
ObjectInputStream
,构造函数将等待相应的ObjectOutputStream
的flush()
方法被调用。既然你还没有创建它,猜猜会发生什么
作为问这个问题的替代方法,您可以简单地切换创建顺序并观察结果。可以说,这对您来说花费的精力更少,而且您还学会了如何解决问题并进行批判性思考。阅读以下javadoc:Read the follow javadoc:Read the follow javadoc:Read the following javadoc:Read the following javadoc: