前提・実現したいこと
pythonを用いてUDP通信を行いたいです。現在単純な送受信は可能となりました。ゲームに対する評価コメントを表示するというプログラムを組んでいます。満点の時、惜しかった時、全問不正解の時などの得点の取れ具合によって違うコメントを出力したいのですが現在は一つの受信に対して一つの送信しかできないでいます。解決策などあればお願いします。
発生している問題・エラーメッセージ
エラーメッセージ
該当のソースコード
python ソースコード # -*- coding: utf-8 -*- from socket import * import random ## UDP受信クラス class udprecv(): def __init__(self): SrcIP = "127.0.0.1" # 受信元IP SrcPort = 22222 # 受信元ポート番号 self.SrcAddr = (SrcIP, SrcPort) # アドレスをtupleに格納 self.BUFSIZE = 1024 # バッファサイズ指定 self.udpServSock = socket(AF_INET, SOCK_DGRAM) # ソケット作成 self.udpServSock.bind(self.SrcAddr) # 受信元アドレスでバインド def recv(self): while True: # 常に受信待ち data, addr = self.udpServSock.recvfrom(self.BUFSIZE) # 受信 print("こんにちは") # 受信データと送信アドレス表示 udp = udprecv() # クラス呼び出し udp.recv() # 関数実行 ここまでが受信側です。 # -*- coding: utf-8 -*- from socket import * import random ## UDP送信クラス class udpsend(): def __init__(self): SrcIP = "127.0.0.1" # 送信元IP SrcPort = 11111 # 送信元ポート番号 self.SrcAddr = (SrcIP,SrcPort) # アドレスをtupleに格納 DstIP = "127.0.0.1" # 宛先IP DstPort = 22222 # 宛先ポート番号 self.DstAddr = (DstIP,DstPort) # アドレスをtupleに格納 self.udpClntSock = socket(AF_INET, SOCK_DGRAM) # ソケット作成 self.udpClntSock.bind(self.SrcAddr) # 送信元アドレスでバインド def send(self): data = "Hello" self.udpClntSock.sendto(data, self.DstAddr) # 宛先アドレスに送信 udp = udpsend() # クラス呼び出し udp.send() # 関数実行 ここまでが送信側です。
試したこと
if文を用いて場合分けを試したが上手くいかなかった。
ここに問題に対して試したことを記載してください。
補足情報(FW/ツールのバージョンなど)
ここにより詳細な情報を記載してください。
回答1件
あなたの回答
tips
プレビュー