各局皆様、こんにちは。アマチュア無線局、JS2IIUです。
JTAlertがUDPで吐き出すADIFを使って遊んでみたいと思い、まずは受信だけするプログラムを作ってみました。受信したらコンソールに吐き出すだけのPythonプログラムです。
# -*- coding: utf-8 -*-
# UDPの受信テストプログラム
# 受信したらコンソールに表示する
# JTAlert のUDP出力は交信成立したタイミングでADIFが出てくる
from socket import *
class udprecv():
def __init__(self):
SrcIP = '127.0.0.1' # source IP
SrcPort = 2333
self.SrcAddr = (SrcIP, SrcPort)
self.BUFSIZE = 1024
self.udpServSock = socket(AF_INET, SOCK_DGRAM) # socket
self.udpServSock.bind(self.SrcAddr)
def recv(self):
while True:
data, addr = self.udpServSock.recvfrom(self.BUFSIZE)
print(data.decode(), addr)
# data.decode()が受信内容をデコードしたもの
udp = udprecv() # call class
udp.recv() # receiving UDP data
最後まで読んでいただきありがとうございます。
先日、UDPで受信したメッセージがデコードされていなくて困っているとのメッセージをいただきました。本ページのサンプルプログラムのまま実行していただければデコードされます。
25行目にあるようにdeta.decode()とすればデコードされた状態になります。