构建服务器,telnet localhost 8888 显示黑屏
building a server, telnet localhost 8888 showing blank screen
所以我正在尝试完成本教程 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
我在另一个命令 window(在 windows 中)webserver1.py 运行ning。当我 运行 这一行时,我得到的是一个空白屏幕而不是
$ telnet localhost 8888
Trying 127.0.0.1 …
Connected to localhost.
就像我应该的那样。有谁知道为什么?如何解决?我尝试用谷歌搜索 telnet localhost 8888 无济于事,我找不到以前发生过这种情况的情况。
所以呃...除非那个端口上有一个 http 守护进程 running/listening,无论如何这不可能发生,因为端口通常是如何工作的(但并非总是如此),这实际上就是那个练习会去的
根据您从另一个 cmd 会话 运行 telnet 后获得的输出,而该 python 脚本在后台 运行,您得到的结果是正确的。但是,windows oobe 版本的 telnet 是 weaksauce。一旦成功建立连接,使用它发送额外的命令以与服务器通信是一种战利品。
脚本调用 python 解释器(应该使用 #!/usr/bin/env python... 只是说)并使用套接字库中的一些对象打开套接字本地主机(您当前登录的计算机)上的端口 8888。
仅此而已,仅此而已。我也运行完成了这个练习,并且掌握了它@https://gist.github.com/mackmoe/09de098b3df5c45adf7a17b764a1eec4
这里只是我的 2 美分:
如果您想为体验设置服务器(并且免费),只需获取 virtualbox,一个 linux 服务器 iso 并使用 digital ocean 的演练之一。喜欢那个@https://www.digitalocean.com/community/tutorials/how-to-install-linux-apache-mysql-php-lamp-stack-on-ubuntu-16-04
希望对朋友有帮助!
所以我正在尝试完成本教程 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
我在另一个命令 window(在 windows 中)webserver1.py 运行ning。当我 运行 这一行时,我得到的是一个空白屏幕而不是
$ telnet localhost 8888
Trying 127.0.0.1 …
Connected to localhost.
就像我应该的那样。有谁知道为什么?如何解决?我尝试用谷歌搜索 telnet localhost 8888 无济于事,我找不到以前发生过这种情况的情况。
所以呃...除非那个端口上有一个 http 守护进程 running/listening,无论如何这不可能发生,因为端口通常是如何工作的(但并非总是如此),这实际上就是那个练习会去的
根据您从另一个 cmd 会话 运行 telnet 后获得的输出,而该 python 脚本在后台 运行,您得到的结果是正确的。但是,windows oobe 版本的 telnet 是 weaksauce。一旦成功建立连接,使用它发送额外的命令以与服务器通信是一种战利品。
脚本调用 python 解释器(应该使用 #!/usr/bin/env python... 只是说)并使用套接字库中的一些对象打开套接字本地主机(您当前登录的计算机)上的端口 8888。
仅此而已,仅此而已。我也运行完成了这个练习,并且掌握了它@https://gist.github.com/mackmoe/09de098b3df5c45adf7a17b764a1eec4
这里只是我的 2 美分: 如果您想为体验设置服务器(并且免费),只需获取 virtualbox,一个 linux 服务器 iso 并使用 digital ocean 的演练之一。喜欢那个@https://www.digitalocean.com/community/tutorials/how-to-install-linux-apache-mysql-php-lamp-stack-on-ubuntu-16-04
希望对朋友有帮助!