JavaOSC Server无法监听
来源:互联网 发布:软件源代码保密协议 编辑:程序博客网 时间:2024/06/12 20:40
JavaOSC不多介绍,是基于UDP的Open Sound Control (OSC) 协议在Java上实现的类库。
官网介绍的用法如下:
Sender:
<span style="font-size:14px;">OSCPort sender = new OSCPort();Object args[] = new Object[2];args[0] = new Integer(3);args[1] = "hello";OSCMessage msg = new OSCMessage("/sayhello", args); try {sender.send(msg); } catch (Exception e) { showError("Couldn't send"); }</span>
Receiver:
<span style="font-size:14px;">receiver = new OSCPortIn(OSCPort.defaultSCOSCPort());OSCListener listener = new OSCListener() {public void acceptMessage(java.util.Date time, OSCMessage message) {System.out.println("Message received!");}};receiver.addListener("/sayhello", listener);receiver.startListening();</span>
实际使用过程中,sender没问题,使用wireshark可以监测到PC收到的msg,但是receiver没反应,而且运行后自动终止。
就这个问题,纠结了好久,因为官方的sample就是这样。还有另外一个更详细的网站,介绍的也是这样。JavaOSC
后来查OSCPortIn的API,发现有一个run()方法:
public void run()Run the loop that listens for OSC on a socket until isListening becomes false.Specified by:run in interface java.lang.RunnableSee Also:Runnable.run()
加上之后,搞定!看来不能迷信官方的sample,也有疏漏的时候。
Server代码如下:
package com.example.OSCServer;import java.net.SocketException;import java.util.Date;import java.util.List;import com.illposed.osc.OSCListener;import com.illposed.osc.OSCMessage;import com.illposed.osc.OSCPortIn;public class Server {public static OSCPortIn receiver = null;public static void main(String[] args) {Thread thread = new Thread() {@Overridepublic void run() {GetIpAddress getAddress = new GetIpAddress();getAddress.run();System.out.println("Server is running.\nThe IP address is "+ getAddress.ipString);try {receiver = new OSCPortIn(Config.port);System.out.println("Server is running.");OSCListener listener = new OSCListener() {@Overridepublic void acceptMessage(Date arg0, OSCMessage arg1) {System.out.println("Message received!");List<Object> args = arg1.getArguments();System.out.println(args.get(0).toString());}};receiver.addListener("/msg", listener);receiver.startListening();if (receiver.isListening())System.out.println("Server is listening");receiver.run();} catch (SocketException e) {// TODO Auto-generated catch blocke.printStackTrace();System.out.println("error " + e);}}};thread.start();}}
参考资料:
http://www.illposed.com/software/javaosc.html
http://www.illposed.com/software/javaoscdoc/
https://wush.net/trac/lsu-idt/wiki/JavaOSC
0 0
- JavaOSC Server无法监听
- sql server 2000 个人版和开发版无法监听1433端口
- oracle无法监听解决方案
- oracle监听无法启动
- 无法监听程序
- oracle监听无法启动
- 问题解决:dialogfragment无法监听监听返回键
- 无法启动GlassFish Server 4.1.1:服务器未运行时,HTTP或HTTPS监听程序端口已被占
- ORACLE监听程序无法启动
- oracle10g 监听服务无法启动
- 浅析oracle监听无法启动
- oracle10g 监听服务无法启动
- oracle 监听无法启动处理
- Oracle监听服务无法启动
- Oracle客户端 无法监听设置
- Oracle无法启动监听方法
- oracle监听程序无法启动,无监听程序
- oracle 监听日志文件过大,导致监听无法启动
- 开源飞控OpenPilot的扩展卡尔曼滤波EKF学习笔记(一)
- USACO Section 1.3 Combination Lock
- 物理引擎中不规则物体的碰撞检测
- Linux设备节点创建》用户空间ueventd创建设备节点规则
- STM32 变量存储问题
- JavaOSC Server无法监听
- Objective-C中的字符串格式化输出
- box-shadow和颜色渐变
- STL源码—deque
- 多分段函数求值总结
- iOS-TableViewCell重用机制分析
- cocos2d-x 动画加速与减速
- C语言基本概念总结
- Ubuntu 14上编译Android 4.4,退出terminal,无法再次启动emulator