0
我正在嘗試創建模型遠程登錄服務器(用於對現有代碼的某些功能測試)。現在我只修改了服務器的歡迎信息,並且正在嘗試使用客戶端代碼讀取此消息,但是它的讀取方法在超時沒有附加信息時會失敗。但隨着啓用pudb調試器它大多數時間工作...簡單的python telnet客戶端/服務器示例不起作用
我正在使用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>
我會很感激如何調試這個問題的任何提示。謝謝!