2016-04-04 7 views
0

...の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() 

2番目のステートメントは、決して終了しないため実行されません。おそらく、あなたは専用のスレッドでそれぞれの呼び出しをserve_foreverに入れ、すべてのスレッドが完了するのを待つだけでこの作業を行うことができますが、より良い解決策があるかもしれません。

+0

ありがとうございます。それが最善の解決策であることを確認しようとしています。 – fightstarr20

関連する問題