public void write(byte[] buf) throws IOException {write(buf, 0, buf.length);}
public override void Write(int b){try{BeginWrite();dst.Write(b);}catch (ThreadInterruptedException){throw WriteTimedOut();}finally{EndWrite();}}