두 개의 스레드에서 실행되는 간단한 Python 응용 프로그램이 있습니다. 하나는 SMTP 서버이고 다른 하나는 HTTP 서버입니다. 터미널에서 시작할 때 Ctrl + C에 반응하지 않습니다. 뭔가가, 그 serve_forever()
전화 잘못 될 수 어쩌면 스레드 또는 뭔가 잘 재생되지 않는 것으로 의심Threaded Python 응용 프로그램이 Ctrl + C로 반응하지 않습니다
import asyncore
import threading
import SimpleHTTPServer
import SocketServer
from smtpd import SMTPServer
class MailHoleSMTP(SMTPServer):
def process_message(self, peer, mailfrom, rcpttos, data):
pass
def run_smtp():
MailHoleSMTP(('localhost', 1025), None)
asyncore.loop()
def run_http():
handler = SimpleHTTPServer.SimpleHTTPRequestHandler
httpd = SocketServer.TCPServer(('localhost', 1080), handler)
httpd.serve_forever()
if __name__ == '__main__':
http_thread = threading.Thread(target=run_http)
smtp_thread = threading.Thread(target=run_smtp)
http_thread.start()
smtp_thread.start()
http_thread.join()
smtp_thread.join()
: 다음은 코드입니다. Ctrl + C로 반응하도록하려면 어떻게해야합니까?
UPD : 두 스레드 중 하나만 실행하더라도 (두 스레드 모두) 작동하지 않습니다.
출력물을 볼 수 있습니까? 추적 가능성이 있습니까? – Messa
아니, 그냥^C^C^C^C^C^C^C^C :) –
3 개의 thread가 아니라. 2. 키보드를 잡는 * main * thread를 세지 않고있다. 일시 정지. –