【问题标题】:building a server, telnet localhost 8888 showing blank screen构建服务器,telnet localhost 8888 显示空白屏幕
【发布时间】:2017-03-26 07:47:26
【问题描述】:

所以我正在尝试完成本教程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

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

$ telnet localhost 8888
Trying 127.0.0.1 …
Connected to localhost.

就像我应该做的那样。有谁知道为什么?如何解决?我尝试谷歌搜索 telnet localhost 8888 无济于事,我找不到以前发生这种情况的情况。

【问题讨论】:

  • 可能是您的 telnet 客户端的问题,或者您的操作系统阻止了 telnet(尽管端口 8888 应该可以使用)。将http://localhost:8888http://127.0.0.1:8888 粘贴到您的浏览器地址栏中。你的脚本应该从你的浏览器打印响应头,并且浏览器应该显示一个页面,上面写着Hello, World!
  • 代码在 Linux 上适用于我

标签: python server telnet


【解决方案1】:

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

根据在后台运行 python 脚本时从另一个 cmd 会话运行 telnet 后得到的输出,您得到的结果是正确的。但是,Windows oobe 版本的 telnet 很弱。一旦建立成功的连接,使用它发送额外的命令来与服务器通信是一种战利品。

脚本调用 python 解释器(应该使用 #!/usr/bin/env python... 只是说)并使用套接字库中的一些对象在 localhost(您的计算机)上的端口 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

希望对朋友有所帮助!

【讨论】:

  • @PM 2Ring - 我知道这是一个故障排除步骤,但是尝试在浏览器中加载它会违背练习的目的,因为您将不再使用 telnet,而是使用http.
  • 是的,这只是一个故障排除步骤。顺便说一句,您应该对这个问题发表评论:我没有从您的评论中得到 ping,因为我之前没有评论过您的回答。
  • 我很糟糕...直到下一次 Mate :)
猜你喜欢
  • 2016-12-24
  • 2022-07-29
  • 2023-02-23
  • 2022-01-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多