PDA

View Full Version : osculator doesn't receive messages from my linux box



andrea.medeghini
09-17-2009, 12:32 AM
Hi,

I'm doing some experiments in sending osc packets over my local network. I wrote a test program in Java which sends periodically an osc message to a specified host, and I tested the program successfully on my mac with snow leopard 10.6.1 and osculator 2.8.8. Today, I tried the same program on my linux box, I configured it to send packets to my mac, but osculator didn't receive any messages. I'm using the command tcpdump to monitor the network traffic and there are packets coming from linux, which go in the port used by osculator (I also switched off the firewall), but osculator doesn't show any messages. Is there a bug in osculator? or did I forget something? :(


Thanks

camille
09-17-2009, 10:10 AM
Hi Andrea,


Some small questions to see where the problem could come from:

How do you produce OSC messages from your application? Are you using a java library, or have you written your own OSC client?

Have you done some regression with the output of your application with an input other than osculator, like an osc dumping tool?


The first thing that comes to my mind is a packet that is not well formed. For example, the iPhone application SynthPond was sending double nested OSC bundles, which was a bit weird. OSCulator was rejecting this kind of invalid packets, but eventually has been made be a bit more lenient in this regard. Perhaps you could send me a tcpdump dump to camille at osculator dot net so I can see what is going out from your linux box?


Also, depending on how you write your java program, you could end up in code that is not 100% portable, especially when bytes are traveling on the network. With this in mind, I would check the proper endianness of the messages that are sent.


Cheers,

Cam

andrea.medeghini
09-17-2009, 10:51 AM
I use classes coming from TUIO Client to send osc packets (package com.illposed.osc).

My test program is very very simple, this is the code:


import java.io.IOException;

import java.net.InetAddress;

import java.net.SocketException;

import java.net.UnknownHostException;


import com.illposed.osc.OSCBundle;

import com.illposed.osc.OSCMessage;

import com.illposed.osc.OSCPortOut;


public class TestOSC {

public static void main(String[] args) {

try {

OSCPortOut portOut = new OSCPortOut(InetAddress.getByName(System.getPropert y("oscHost", "localhost")), Integer.getInteger("oscPort", 4444));

for (;;) {

if (portOut != null) {

try {

OSCBundle bundle = new OSCBundle();

OSCMessage message = new OSCMessage("/alive");

message.addArgument(new Integer(1));

bundle.addPacket(message);

portOut.send(bundle);

}

catch (IOException e) {

e.printStackTrace();

}

}

Thread.sleep(1000);

if (portOut != null) {

try {

OSCBundle bundle = new OSCBundle();

OSCMessage message = new OSCMessage("/alive");

message.addArgument(new Integer(0));

bundle.addPacket(message);

portOut.send(bundle);

}

catch (IOException e) {

e.printStackTrace();

}

}

Thread.sleep(1000);

}

}

catch (SocketException e) {

e.printStackTrace();

}

catch (UnknownHostException e) {

e.printStackTrace();

}

catch (InterruptedException e) {

e.printStackTrace();

}

}

}


If I run this program on my mac it works fine, but if I run it on my linux box (of course I set the oscHost property to my mac ip address), osculator stops to receive messages.


Is there any log of incoming packets in osculator?


Thanks

camille
09-17-2009, 08:08 PM
Hello Andrea,


Just one question: since you are sending only single messages, there is no need to bundle them. Could you try to send plain messages, instead of bundles?


There is not a lot of control over the debugging of OSC at this time. OSCulator is in itself a log of incoming OSC message, they are simply displayed in the main list. However, some problems are logged to the Console, you can have a look at this to see if the problem is coming from there.


I will try your program on a linux virtual machine and see if I can reproduce the problem.


Best,

Camille

andrea.medeghini
09-17-2009, 08:26 PM
I removed the bundle and now it works!


Thank you