ラズパイ間で最も単純な通信形態をやってみます。
テストした環境
Server
OS:Bullseye Lite(32-bit) Python (3.9.2)
Client
OS:Bookworm Desktop (64-bit) Python(3.11.2)
段取り
Server
ソケットを作成して、自身のIPアドレスとポート番号にバインドして、クライアントからの接続を待ち受けます。
クライアントから接続されデータを受信すると表示などをします。
クラアントから切断されると自身もクローズします。
Client
サーバーのIPアドレスとポートでソケットを作成。
サーバーに接続してデータを送信。
終わればソケットを閉じる。
ポート番号は8888 としておきます。
Serverコード
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
import socket server_ip = "<IPアドレス>" server_port = 8888 server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM) server_socket.bind((server_ip, server_port)) server_socket.listen(1) print(f"サーバーが {server_ip}:{server_port} で待機中...") client_socket, client_address = server_socket.accept() print(f"クライアント {client_address} が接続しました。") while True: data = client_socket.recv(1024) if not data: break print(f"受信したデータ: {data.decode('utf-8')}") client_socket.close() server_socket.close() |
Clientコード
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
import socket server_ip = "<IPアドレス>" server_port = 8888 client_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM) client_socket.connect((server_ip, server_port)) print(f"サーバー {server_ip}:{server_port} に接続しました。") data_to_send = "Hello, My server!" client_socket.send(data_to_send.encode('utf-8')) client_socket.close() |
Appendix
PicoをServerやCkientにする場合はこちらを参照
Pi Pico W にサーバーを建ててクライアントと双方向通信
zz

Leave a Reply