human
コンピューターBによってネットワーク制御電源アウトレットを介して電源をオフにして電源をオフにして、1つのコンピューターでテストを再起動したい（それを呼び出すことができる）。いつ成功したかを追跡してください。これを行うことができる最も単純なPythonセットアップは何ですか？
gpt
ここでは、この仕事をするための簡単なPythonのセットアップを紹介する：

1.  1. コンピュータ A で、コンピュータ B からの電源のオフとオンの要求をリッスンする Python スクリプトを書く。電源を切るには、`os` や `subprocess` などのライブラリを使ってコンピュータをシャットダウンするコマンドを実行する。電源を入れるには、`socket` などのライブラリを使用して、Wake-On-LAN (WoL) パケットをコンピュータに送信する。
    
2.  2. コンピュータBで、電源を切ったり入れたりするリクエストをコンピュータAに送る Pythonスクリプトを書く。requests`ライブラリを使うと、コンピュータAにHTTPリクエストを送ることができる。
    
3.  コンピュータAが起動したら、コンピュータBにオンラインであることを示すメッセー ジを送るべきである。このメッセージを送るには `socket` ライブラリを使えばよい。
    
4.  コンピュータBは、コンピュータAから受信した各メッセージの時刻を記録することで、コンピュータAがいつ起動したかを追跡することができる。
    

以下にサンプルコードを示します：

```
pythonCopy code# Computer A
import os
import socket

def turn_off():
    os.system("shutdown -h now")

def turn_on():
    # send WoL packet

def send_online_message():
    s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
    s.connect(("computer_b_ip", 80))
    s.sendall("Online".encode())
    s.close()

# Listen for requests from computer B
# ...

# Computer B
import requests

def request_reboot(ip):
    requests.post("http://" + ip + "/reboot")

def record_boot(message):
    # Record the time and message

# Send reboot request
# ...

# Listen for online messages from computer A
# ...

```

このコードは単なる出発点であり、あなたの特定の要件に適合させる必要があります。
human
コンピューターAとBからのリクエストをどのように聞くのでしょうか？
gpt
Pythonのソケットライブラリを使用して、着信接続を聴くことができます。例えば：

`` python
ソケットをインポートします

host = "localhost"＃アドレスを聞くには、IPにすることができます
PORT = 20000＃リッスンするポート（非公開ポートは> 1023です）

socket.socket（socket.af_inet、socket.sock_stream）をsとして：
    S.Bind（（ホスト、ポート））
    s.listen（）
    conn、addr = s.accept（）
    connで：
        印刷（f "{addr}からの受信接続を受け入れた"）
        本当です：
            data = conn.recv（1024）
            データでない場合：
                壊す
            conn.sendall（データ）
`` `