[按下键时Telnet断开连接

问题描述 投票:0回答:1

我目前是第一次使用python使用编程服务器,而我目前正在使用telnet。我正在使用名称testserver.py作为包含Python中服务器代码的文件。

python testserver.py

如果需要,我可以提供服务器代码,但是我的主要问题是由于在命令提示符下输入以下文本而引起的:

telnet localhost 8000

其中8000是用于表示我的端口的任意数字。然后单击Enter,然后telnet连接到主机。但是,只要我按键盘上的一个键,就会显示服务器的内容(在我的情况下为“ Hello,World!”),并且telnet失去连接。本质上,我的telnet会话即将结束,但我需要保持打开状态。如何解决此问题?

python server command-prompt telnet
1个回答
0
投票

如注释telnet中所述,只要不关闭连接,它就应保持活动状态。如果使用以下服务器代码,则应该看到所需的行为:

import socket

s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
s.bind(('0.0.0.0', 9999))
s.listen(1)

c,remote=s.accept()

while(len(c.recv(4096)) > 0):
    c.send("ok\n".encode())

使用python server.py运行上面的命令,然后您应该能够从telnet获得类似以下行为的东西,我现在能够在python:3.7.3-stretch docker映像(添加了telnet)中进行验证。

root@c4a34304039b:/# telnet localhost 9999
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
test
ok
test2
ok
© www.soinside.com 2019 - 2024. All rights reserved.