ポートをリッスンしてクライアントから要求を取得するには、以下のpythonスクリプト(server.py)があります。私は別のpythonファイル(Main.py)からこのスクリプトを呼び出しています。私の要件は、特定の時間が経過した後にserver.pyの実行を停止することです。私はファイルの最後の行にexit()を使ってみました - server.pyサーバを停止してファイルの実行を止めることはできましたが、スクリプトの実行を停止できず、サーバは応答し続けました。私が間違っている場所を教えてくれる人は誰でも助けてくれますか?Pythonスクリプトの実行を停止します
Server.py
bind_ip = "127.0.0.1"
bind_port = 2530
def servercreate():
server = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
server.bind((bind_ip,bind_port))
server.listen(5)
while True:
client, addr = server.accept()
print('[*] Accepted connection from: %s:%d' % (addr[0], addr[1]))
client_handler = threading.Thread(target=handle_client, args=(client,))
client_handler.start()
def handle_client(client_socket):
request = client_socket.recv(2056)
print('[*] Received: %s' % request)
message = "{}"
client_socket.send(message.encode('utf-8'))
client_socket.close()
if __name__ == '__main__':
servercreate()
Main.py
import Server
Server.servercreate()
まあ、迅速かつDIR 「client_handler.daemon = True'」(https://docs.python.org/3/library/threading.html#threading.Thread.daemon)を 'client_handler.start()'の前に設定してください。それほど強力ではない方法は、 'terminate'フラグをつけて、それを定期的にクライアントスレッドでチェックすることです。 – dhke
こんにちは@水曜日、コメントありがとう。私はPythonプログラミングに慣れていないので、もっと具体的なロボットになれますか?ありがとう。 – mbvee