[英]Python telnetlib client doesn't appear to be opening telnet connection to server
[英]Simple python telnet client/server example doesn't work
我正在嘗試創建模型telnet服務器(用於對現有代碼進行一些功能測試)。 現在,我僅修改了服務器歡迎消息,並且嘗試使用客戶端代碼讀取此消息,但是超時時讀取方法失敗,沒有其他信息。 但是啟用pudb調試器后,它大部分時間都可以工作...
我正在使用virtualenv,並使用pip安裝了pudb和telnetsrv。 Python 2.7.12,Ubuntu 16.04。
服務器代碼:
import SocketServer
from telnetsrv.threaded import TelnetHandler
class MyHandler(TelnetHandler):
WELCOME = "HI from custom server"
class TelnetServer(SocketServer.TCPServer):
allow_reuse_address = True
server = TelnetServer(("0.0.0.0", 8023), MyHandler)
server.serve_forever()
客戶代碼:
import telnetlib
HOST = '127.0.0.1'
PORT = 8023
# from pudb import set_trace; set_trace()
tn = telnetlib.Telnet(HOST, PORT)
data = tn.read_until("custom server", timeout=1)
print "Data: " + data
tn.close()
客戶輸出:
$ python client.py
Data:
啟用pudb的客戶端輸出(分步執行)
$ python client.py
Data: HI from custom server
當然,當我執行shell telnet命令時,一切正常:
$ telnet 127.0.0.1 8023
Trying 127.0.0.1...
Connected to 127.0.0.1.
Escape character is '^]'.
HI from custom server
Telnet Server>
我非常感謝有關如何調試此問題的任何提示。 謝謝!
確保實際上正在進行連接。 為此,請編輯您的代碼以將tn.set_debuglevel(100)添加到腳本中,如下所示:
import telnetlib
HOST = '127.0.0.1'
PORT = 8023
# from pudb import set_trace; set_trace()
tn = telnetlib.Telnet(HOST, PORT)
tn.set_debuglevel(100)
data = tn.read_until("custom server", timeout=1)
print "Data: " + data
tn.close()
這樣可以確保打印出所有數據,以便您查看發生了什么。
我的理論是,您沒有連接,或者您的數據實際上沒有輸出“自定義服務器”,因此它無法捕獲該數據,或者您的超時時間太短。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.