两台服务器之间的通信:
服务器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>
答案 0 :(得分:0)
available()
的任何实现都可以自由返回零,并且Javadoc中没有任何关于它返回流中的字节数的信息:相反,有一个特定的拒绝它做任何这样的事情。您的接收方应该只在<{1}}中阻止。发送者除了发送之外没有其他任何帮助。