Open1
Pythonを使ってソケット通信でJSONデータを送受信するサーバーとクライアントの例
【全部未検証】
Pythonを使って、ソケット通信を使ってJSONデータを送受信するサーバーとクライアントの例
サーバーはUDPソケットを使ってJSONデータをブロードキャストし、クライアントは同じUDPソケットを使ってデータを受信。サーバー側のコードはデータをJSON形式に変換し、それをブロードキャストアドレスに送信。一方、クライアント側はソケットからデータを受信し、JSON形式からPythonオブジェクトに変換して表示。
server.py
import socket
import json
import time
def main():
server_socket = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
server_socket.setsockopt(socket.SOL_SOCKET, socket.SO_BROADCAST, 1)
broadcast_address = ('255.255.255.255', 5000)
data = {
"message": "Hello, from server!",
"timestamp": time.time()
}
while True:
json_data = json.dumps(data).encode('utf-8')
server_socket.sendto(json_data, broadcast_address)
print("Broadcasting JSON data:", data)
time.sleep(5)
if __name__ == '__main__':
main()
client.py
import socket
import json
def main():
client_socket = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
client_socket.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
client_socket.setsockopt(socket.SOL_SOCKET, socket.SO_BROADCAST, 1)
client_socket.bind(('', 5000))
while True:
json_data, addr = client_socket.recvfrom(1024)
data = json.loads(json_data.decode('utf-8'))
print(f"Received JSON data from {addr}: {data}")
if __name__ == '__main__':
main()