gpt4 book ai didi

扭曲的服务器,nc 客户端

转载 作者:行者123 更新时间:2023-12-02 07:48:39 25 4
gpt4 key购买 nike

我将用一个小例子来说明我面临的问题。

class TestProtocol(basic.LineReceiver):
def lineReceived(self, line):
print line

只要我使用 telnet 客户端连接到服务器,一切正常。但是,使用netcat 并没有接收到connect 和发送数据的线路。我有一种感觉,这与默认定界符是扭曲的“\r\n”有关。

我怎样才能使服务器(telnet 和 nc)在连接到客户端时以相似的方式运行?

最佳答案

LineReceiver 只支持一种分隔符。您可以指定它,但一次只能有一个。一般来说,如果你想支持多个定界符,你需要实现一个支持它的新协议(protocol)。你可以看看the implementation of LineReceiver有关如何实现基于线路的协议(protocol)的一些想法。

netcat 发送您键入的任何内容,因此分隔符通常是\n(但它可能因平台和终端仿真器而异)。对于\n 的特殊情况,它是默认 LineReceiver 定界符 \r\n子串,您可以使用另一个技巧。将 TestProtocol.delimiter 设置为 "\n",然后将传递给 的行末尾的 "\r" 去掉lineReceived 如果有的话。

class TestProtocol(basic.LineReceiver):
delimiter = "\n"

def lineReceived(self, line):
print line.rstrip("\r")

关于扭曲的服务器,nc 客户端,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5087559/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com