Python 3.x 如何分解http服务器?

Python 3.x 如何分解http服务器?,python-3.x,Python 3.x,我编写了一个http服务器,知道如何在本地运行它。然后我想在谷歌服务器上运行它。在谷歌上创建服务器时,我同时包含了http和https的收费标准。服务器启动,但很可能仅在本地启动。这是我的外部服务器ip 35.223.69.89。当我尝试像35.223.69.89:800那样连接时,连接失败。这是我的密码: import socket import selectors import os selector = selectors.DefaultSelector() def server(

我编写了一个http服务器,知道如何在本地运行它。然后我想在谷歌服务器上运行它。在谷歌上创建服务器时,我同时包含了http和https的收费标准。服务器启动,但很可能仅在本地启动。这是我的外部服务器ip 35.223.69.89。当我尝试像35.223.69.89:800那样连接时,连接失败。这是我的密码:

import socket
import selectors
import os


selector = selectors.DefaultSelector()


def server():
        socket_server = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
        socket_server.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
        socket_server.bind(('0.0.0.0', 800))
        socket_server.listen()
        print('Сервер запустился')
        selector.register(fileobj=socket_server, events=selectors.EVENT_READ, data=accept_connection)  # Регистрируем socket в буфере
def accept_connection(server_socket):
        ''' Получаем запрос от пользователя
                регистрируем соединение в буфере '''
        client_socket, addres = server_socket.accept()
        print('Connection from ', addres),
        selector.register(fileobj=client_socket, events=selectors.EVENT_READ, data=send_http)


def send_http(client_socket):
        ''' Отвечаем пользователю
        закрываем соединение с пользователю
        убираем соединение с буфера '''
        start = datetime.now()
        request = client_socket.recv(1024)
        client_socket.sendall('hello'.endoce())                                       

        selector.unregister(client_socket)
        client_socket.close()
        print(datetime.now() - start)


def event_loop():
        while True:
                events = selector.select()
                for key, _ in events:
                        callback = key.data
                        callback(key.fileobj)


def run():
        ''' Запускаем сервер '''
        server()
        event_loop()


run()
我尝试通过浏览器和nc进行连接:

nc 35.223.69.89 800
但没有成功。我还试着改变这一行:

socket_server.bind(('0.0.0.0', 800))
关于:

socket_server.bind(('35.223.69.89', 800))
但是你犯了一个错误

  File "dts.py", line 10, in server
    socket_server.bind(('35.223.69.89', 800))
OSError: [Errno 99] Cannot assign requested address

可能在没有apache和类似解决方案的情况下启动服务器。我想知道aiohttp是如何启动的,没有wsgi

如果你只是在谷歌云服务器上遇到问题,那可能是防火墙配置问题(即谷歌不允许你的连接通过)。