'Output the given byte string over the serial port. Can block if the
connection is blocked. May raise SerialException if the connection is
closed.'

def write(self, data):

    if (not self.is_open):
        raise portNotOpenError
    with self._write_lock:
        try:
            self._socket.sendall(to_bytes(data).replace(IAC, IAC_DOUBLED))
        except socket.error as e:
            raise SerialException('connection    failed    (socket    error):    {}'.format(e))
    return len(data)
