项目使用套接字从连接客户端读取,直到没有更多字符要读取或接收到\ r \ n。以下是代码片段:
while True:
ch = connection.recv(1)
data += ch.decode('UTF-8')
if data.endswith('\r\n') or not ch:
data = data.replace('\r\n','')
break
当使用Windows运行从客户端读取的服务器时,代码按预期工作。然而,当我尝试在运行rasbian的覆盆子pi上运行它时,它总是读取回车符号为' \\ r \\ n'。例如,当客户端发送:
-list_networks wlan0 5180<return>
产生一个如下字符串:
-list_networks wlan0 5180\\r\\n
这是为什么?因此,它不会被读作回车而被遗漏。我知道不同的操作系统返回不同的字符串以便回车,但是当我研究一下时,我没有找到关于这个字符串的任何信息。我错过了什么吗?建议和解释表示赞赏。
忘记添加命令是通过telnet连接发送的。我希望能够通过telnet连接到套接字。输入一个命令,当按下回车键时,循环将识别并结束循环。