[Tutor] telnetlib - character hex00 missing

Steven D'Aprano steve at pearwood.info
Mon Nov 22 10:27:46 CET 2010


Joachim Roop wrote:
> Even though my non-python telnet-server on the other side is sending #00-bytes, they are not recognized by python's telnetlib (characters #01-#FF seem to work fine though).
> My C++ implementation has no problems with this.  I have to use Python 3.1 on Windows.
> 
> I'm guessing this a known bug. What is the workaround? :(

Don't guess, search.

http://bugs.python.org/


> # Receiver
> tn = telnetlib.Telnet()
> tn.open(ip, port)
> 
> while 1:
>   response = (tn.read_until(b"\r",20))[1:-1]

Is there a reason that you throw away the first and last byte being 
read? My wild guess is that the NULL is either the first byte, or most 
likely the last, and then you throw it away.


>   if response.find(bytes.fromhex("00")) > -1:

It might be simpler to use a byte literal instead of calling a function 
to generate a NULL.

     if response.find(b'\x00') > -1:


>     print ("There are hex00 characters")
>   else:
>     print ("No hex00 characters found")
> 
> tn.close


Hope this helps.



-- 
Steven


More information about the Tutor mailing list