前提・実現したいこと
以下のソースコードで現在IPアドレス情報を受け取り、予め配列(ipall)に格納していた文字列と比較して同じIPアドレス情報があった場合はTrue、無かった場合はFalseの判定を入れています。
その内容を以下のように生成してテキストファイルでログとして出力したいのですがうまく出来ません。
ご教示いただけますと幸いです。
□生成して出力したいログ
trueなら
ESP-[251.207]-20190920-正しく動作しています。
Falseなら
ESP-[111.111]-20190920-応答がありません。
ソースコード
import socket #通信用 address = ('192.168.1.3', 10000) path_w = r'C:\Users\User\Desktop\log.txt' #log出力先 udp = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) #udpという名前のUDPソケット生成 udp.bind(address) #udpというソケットにaddressを紐づける while True: #受信ループ try: rcv_byte = bytes() #バイトデータ受信用変数 rcv_byte, addr = udp.recvfrom(1024) #最大バイト数設定 msg = rcv_byte.decode() #バイトデータを文字列に変換 print(msg) #文字列表示 with open(path_w,mode='a') as f: f.write(msg) ipall=["251.207","111.111"] #ESP32の一覧IP for i in ipall: print(i in msg) print(i) if msg == 'e': #受信した文字列がeならUDPソケットを閉じて終了 udp.close() break except KeyboardInterrupt:#強制終了を検知したらUDPソケットを閉じて終了 udp.close()
補足情報(FW/ツールのバージョンなど)
Python3.7
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/09/24 00:06