2016-04-04 2 views
0

Я использую питона http.Server Инициализировать 2 экземпляра в различных портах и ​​обслуживать до HTML-файл из папки ...Python http.Server 2 экземпляра и 2 папки

import http.server 
import socketserver 
import os 

PORT1 = 8000 
PORT2 = 8001 

os.chdir("html/folder1/") 
Handler1 = http.server.SimpleHTTPRequestHandler 

os.chdir("../folder2/") 
Handler2 = http.server.SimpleHTTPRequestHandler 

httpd1 = socketserver.TCPServer(("", PORT1), Handler1) 
httpd2 = socketserver.TCPServer(("", PORT2), Handler2) 

print("serving at port", PORT1) 
print("serving at port", PORT2) 

httpd1.serve_forever() 
httpd2.serve_forever() 

Этот груз без ошибок, но Я могу только загрузить http://localhost:8000

Любые идеи, в которых я ошибаюсь?

ответ

1

Метод serve_forever делает именно это ... обслуживает HTTP-запросы и никогда не выходит. Поэтому, когда вы это сделаете:

httpd1.serve_forever() 
httpd2.serve_forever() 

Второе утверждение никогда не выполняется, поскольку первый никогда не выходит. Возможно, вы могли бы сделать эту работу, поместив каждый вызов в serve_forever в выделенный поток, а затем просто ожидая завершения всех потоков, но может быть лучшее решение.

+0

Спасибо, имеет смысл. Просто пытаюсь убедиться, что это лучшее решение – fightstarr20

Смежные вопросы