直接上代码
这是创建 socket和2个流对象 private Boolean Init(){

Boolean b = true;

try{
this.m_Socket = new Socket(Config.getInstance().getServerIp(),Config.getInstance().getPort());
sender = new BufferedOutputStream(m_Socket.getOutputStream());
receiver = new BufferedInputStream(m_Socket.getInputStream()); baos = new ByteArrayOutputStream();
}catch(Exception ex){
Log.getInstance().sysError("err:"+ex.toString());
b = false;
}

return b;
}这是使用流对象法数据: sender.write(sbBaos.toString().getBytes());
sender.write(bt);
sender.flush();
这是使用接收流对象接数据: byte[] data = new byte[5*1024];
int l = this.receiver.read(data);
byte[] dest = new byte[l];
System.arraycopy(data, 0, dest, 0, l);
Log.getInstance().sysDebug("回执包:"+l+"个字节");
另外,我不想.close   因为之后我还得用这个 socket 。但是我又怀疑我仅仅receiver.read(data);的话 receiver 这个接收缓冲区的数据会呈线性增量,直到撑爆为止。
但是我又不知道有什么方法可以直接 把 接收缓冲区给重置。