簡體   English   中英

從套接字讀取的Python初始返回一些意外字符

[英]Python initial read from socket returns some unexpected characters

我有一個Python套接字服務器,我想一次從一行中讀取文本命令,下面是代碼。 第一次運行時,line包含數據前的一些垃圾字符。 在隨后的readline調用中,我獲得了從telnet客戶端(Putty)中鍵入的確切數據。 為什么我會得到這些頭幾個明顯的垃圾字符。 例如,如果我輸入_return_ ,則該行包含\\u18\\u01\\u03d\\r\\n '

    HOST = ''
    PORT = 27001
    s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
    s.bind((HOST, PORT))
    s.listen(1)
    while True:
        conn, address = s.accept()
        print 'Got new CLI connection'
        f = conn.makefile()
        f.flush()
        while True:
            try:
                self.PrintBanner(conn)
                self.PrintMenu(conn)
                line = f.readline()
                if line.lower()[:1] == 'd':
                    self.MenuFieldRequestStatus(conn)
                    f.readline()
            except:
                s.close()

在這種情況下,您需要確定並使用“ RAW”模式。 否則,您的telnet客戶端將嘗試發現並與telnet服務器協商。 有關更多信息,請參見此鏈接:

3.6建立原始TCP連接

您可能也可以在Telnet設置區域中將“ Telnet協商模式”切換為被動。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM