我目前是第一次使用python使用编程服务器,而我目前正在使用telnet。我正在使用名称testserver.py作为包含Python中服务器代码的文件。
python testserver.py
如果需要,我可以提供服务器代码,但是我的主要问题是由于在命令提示符下输入以下文本而引起的:
telnet localhost 8000
其中8000是用于表示我的端口的任意数字。然后单击Enter,然后telnet连接到主机。但是,只要我按键盘上的一个键,就会显示服务器的内容(在我的情况下为“ Hello,World!”),并且telnet失去连接。本质上,我的telnet会话即将结束,但我需要保持打开状态。如何解决此问题?
如注释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