Does the ReadExisting() method block if no bytes are available to read or does it return an empty string?