Unity(Windows)からRaspberry Piへデータ送信
- 2020.12.13
- Android Raspberry Pi
UnityからRaspberry Piへのデータ送信のプログラムです。Unity側はC#、Raspberry Pi側はPythonです。
Unity (クライアント)
Unity側は送信なので、サーバのIPアドレスを指定します。同じPC内なら127.0.0.1を指定すればいけます。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 |
using UnityEngine; using System.Net.Sockets; using System.Text; public class UDPClient : MonoBehaviour { // broadcast address public string host = "192.168.3.10"; public int port = 8000; private UdpClient client; void Start () { client = new UdpClient(); client.Connect(host, port); byte[] dgram = Encoding.UTF8.GetBytes("hello!"); client.Send(dgram, dgram.Length); } void Update () { } void OnApplicationQuit() { client.Close(); } } |
Raspberry Pi (サーバ)
Raspberry Pi側はPythonなので非常に短いコードで十分です。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
from socket import socket, AF_INET, SOCK_DGRAM import sys HOST="" PORT=8000 s=socket(AF_INET, SOCK_DGRAM) s.bind((HOST, PORT)) try: while True: msg, adress=s.recvfrom(32) print (msg) except KeyboardInterrupt: print ("close") s.close() sys.exit |
受信結果
サーバを起動して、クライアントを起動すると文字が送信されます。今回は1行限りですが、勿論プログラムを変えれば繰り返し送信できます。
-
前の記事
KRSサーボモータ(近藤科学)をRaspberry Piで動かす 2020.08.15
-
次の記事
PythonのThreadをまとめて止める 2020.12.13