[Tutor] telnetlib - character hex00 missing
alan.gauld at btinternet.com
Mon Nov 22 10:07:06 CET 2010
"Joachim Roop" <no.dr at gmx.de> 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? :(
Telnetlib has been around for at least 10 years so I'd expect a
bug that serious to have been fixed long ago! I suspect something
else is at fault.
> # Receiver
> tn = telnetlib.Telnet()
> tn.open(ip, port)
> while 1:
Python idiom nowadays prefers "while True:" to "while 1:"
> response = (tn.read_until(b"\r",20))[1:-1]
It might be worth breaking this line down and printing the results
data = tn.read_until(b"\r",20) # did telnet even read the 00?
response = data[1:-1] # did we strip it correctly?
> if response.find(bytes.fromhex("00")) > -1:
> print ("There are hex00 characters")
> print ("No hex00 characters found")
Others may have more info, but I'll be surprised if telnetlib can't
read a '00'.
Author of the Learn to Program web site
More information about the Tutor