阻止OutputStream上的写操作

时间:2016-03-08 11:03:08

标签: java inputstream objectinputstream objectoutputstream

两台服务器之间的通信:

服务器1向服务器2发送请求 服务器2使用下面的api

在流上写入响应
ObjectOutputStream oos = new ObjectOutputStream(servResp.getOutputStream());
oos.writeObject(dataObj)

当服务器1接收数据

InputStream res = connection.getInputStream();
if(res.available() > 0) {
    ObjectInputStream ois = new ObjectInputStream(res);
    Object object = ois.readObject();
    dataObj = (DataObject)object;
}

这里,res.isavailable()返回零字节,它将通过在服务器2上使用阻塞读取来解决,但是有没有办法在服务器1上处理它?<​​/ p>

1 个答案:

答案 0 :(得分:0)

available()的任何实现都可以自由返回零,并且Javadoc中没有任何关于它返回流中的字节数的信息:相反,有一个特定的拒绝它做任何这样的事情。您的接收方应该只在<{1}}中阻止。发送者除了发送之外没有其他任何帮助。