我正在實現一個Telnet服務器,我有兩個Telnet實現:預認證和後驗證。扭曲的Telnet服務器:如何避免嵌套的CRLF
核心問題是服務器發送\r\r\n
而不是\r\n
。通過一步調試,我發現這是由於ProtocolTransportMixin
,這是類在heriarchy有兩次。我相信這是由於pre-auth和post-auth運輸之間存在某種相互聯繫(一個是另一個的基本運輸)。
有沒有辦法可以取消mixin的效果?
我的Telnet服務器工廠實例與
lambda: TelnetTransport(MyOwnTelnetAuthTransport, ...)
MyOwnTelnetAuthTransport
是AuthenticatingTelnetProtocol
一個子類。
後驗證,我通過我自己的子類TelnetBootstrapProtocol
通過領域連接它。
由於兩個TelnetTransport
和TelnetBootstrapProtocol
具有在其write()
方法我結束了\r\r\n
替代\n
爲\r\n
的ProtocolTransportMixin
...
雖然這看起來會工作99.9%的時間,但從技術上講,這是不正確的,因爲調用者*可能*調用'write(「\ r」)'然後'write(「\ n」)''。 – Glyph