构建服务器,telnet localhost 8888显示空白屏幕

时间:2016-11-12 02:03:36

标签: python server telnet

所以我试图完成本教程here

我首先在这里运行代码:

import socket

HOST, PORT = '', 8888

listen_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
listen_socket.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
listen_socket.bind((HOST, PORT))
listen_socket.listen(1)
print('Serving HTTP on port %s ...' % PORT)
while True:
    client_connection, client_address = listen_socket.accept()
    request = client_connection.recv(1024)
    print(request.decode('utf-8'))

    http_response = """\
HTTP/1.1 200 OK

Hello, World!
"""
    client_connection.sendall(bytes(http_response, 'utf-8'))
    client_connection.close()

然后在下一部分,它告诉我在同一台计算机上输入这一行。

$ telnet localhost 8888

我在不同的cmd窗口(在Windows中)运行webserver1.py。当我运行这一行虽然我得到一个空白的屏幕而不是

$ telnet localhost 8888
Trying 127.0.0.1 …
Connected to localhost.
像我应该的那样。有谁知道为什么?怎么解决?我试过谷歌telnet localhost 8888无济于事,我无法找到以前发生这种情况的情况。

1 个答案:

答案 0 :(得分:0)

所以呃......除非有一个http守护进程在该端口上运行/侦听,但由于端口通常如何工作(但并非总是如此),这种情况无论如何都不会发生,这实际上与该练习的内容有关。 / p>

根据您在后台运行python脚本时从另一个cmd会话运行telnet后获得的输出,您的结果是正确的。但是,windows的oobe版本的telnet是弱点。

表示,一旦建立成功连接,使用它发送附加命令与服务器通信。

脚本调用python解释器(应该使用#!/ usr / bin / env python ...只是说)并使用套接字lib中的一些对象在本地主机上的端口8888上打开一个套接字(计算机你'目前已登录)。

就是这样,仅此而已。我也经历了这个练习,然后把它弄成了https://gist.github.com/mackmoe/09de098b3df5c45adf7a17b764a1eec4

这里只需2美分: 如果你想设置一个体验服务器(并且是免费的),只需抓住virtualbox,一个linux服务器iso并使用数字海洋的演练之一。就像那个@ https://www.digitalocean.com/community/tutorials/how-to-install-linux-apache-mysql-php-lamp-stack-on-ubuntu-16-04

希望能帮助朋友!