概要
Xamarin.Macで、同PC内でOSC通信を行う簡単なGUIアプリケーションを作成しようと思い開発しています。
Rug.OSCというライブラリを用いて、 Rug.OSCの公式Wikiを見ながらやっているのですが、CocoaアプリだとWikiにある
C#
1class Program 2{ 3 static void Main(string[] args) 4 { 5 // This is the ip address we are going to send to 6 IPAddress address = IPAddress.Parse("127.0.0.1"); 7 8 // This is the port we are going to send to 9 int port = 8006; 10 11 // Create a new sender instance 12 using (OscSender sender = new OscSender(address, port)) 13 { 14 // Connect the sender socket 15 sender.Connect(); 16 17 // Send a new message 18 sender.Send(new OscMessage("/test", 1, 2, 3, 4)); 19 } 20 } 21}
すら動かず困っています(なぜかコンソールアプリケーションでは送信できます)。
受信の処理はPythonで、どこかのブログを参考に
Python
1import time 2import threading 3import argparse 4from pythonosc import dispatcher 5from pythonosc import osc_server 6 7def oscprint(unused_addr, args, *values): 8 print("value size: ", len(values)) 9 for el in values: 10 print(el) 11 12parser = argparse.ArgumentParser() 13parser.add_argument("---ip", default="127.0.0.1", help="The ip to listem on") 14parser.add_argument("---port", type=int, default=8006, help="The port to listen on") 15 16args = parser.parse_args() 17dispatcher = dispatcher.Dispatcher() 18dispatcher.map("/camera", oscprint, "Test") 19 20server = osc_server.ForkingOSCUDPServer((args.ip, args.port), dispatcher) 21print("Serving on {}",format(server.server_address)) 22server_thread = threading.Thread(target=server.serve_forever) 23server_thread.start() 24time.sleep(60) 25server.shutdown()
を動かしました。
状況
先に上記のPythonのサーバを起動し、C#のアプリを実行すると、コンソールアプリだと通信できるのですが、Cocoaアプリだとできません。
環境
- OS: MacOS Mojave version 10.14.4
- PC: MacBookPro 15-inch 2017
- VS: Visual Studio for Mac version 8.1.4
補足
以下はCocoaアプリだけでなくコンソールアプリでも動かなかったのですが、DOBON.NET/UDPによりデータの送受信を行うを参考にUDPクライアントで送受信しようとしてみてもうまく行きませんでした。これは別の原因かもしれないですが、ご存知の方、ご教授いただければ幸いです。
あなたの回答
tips
プレビュー