Python3: UDP を受信


こちらの記事を参考にしました。
UDPでデータを受信する最も単純なPythonコード(Jupyter notebook版)

次のバージョンで確認しました。

$ python3 --version
Python 3.7.3

ポート 8092 の受信

receive.py
#! /usr/bin/python3
#
#   receive.py
#
#                           Aug/25/2021
#
import socket
import sys

udp = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
udp.bind(("0.0.0.0",8092))

sys.stderr.write("*** start ***\n")

while True:
    try:
        rcv_byte = bytes() #バイトデータ受信用変数
        rcv_byte, addr = udp.recvfrom(1024) #括弧内は最大バイト数設定
        msg = rcv_byte.decode() #バイトデータを文字列に変換
        print(len(msg))
        print(msg)
        if msg.strip() == 'close':
            udp.close()
            break
    except KeyboardInterrupt:
        udp.close()

ポート 8092 に udp で送信するスクリプト

echo 'Good Morning' | ncat -4 -u -w 1 localhost 8092

終了させるスクリプト

echo 'close' | ncat -4 -u -w 1 localhost 8092