Pnet is a MEX-file-based toolbox for Octave/MATLAB. The help instructions would lead you to believe that UDP reads block by default, but this didn’t work for me: I had to specify a timeout. You can specify Inf, but given that you can’t ctrl-c out of a program whilst the MEX part is running, I’d recommend choosing a reasonable value (like 20, = 20 seconds).
Here’s a simple example:
data = pnet(sock, 'read')
Octave supports MEX files, just like MATLAB. Here’s how to compile a MEX file (in my case pnet):
- Run Developer Tools (2012)
- Change Octave’s math.h to specify correct MS math.h
- Add Octave ‘bin’ folder to path
- Change to the folder with the files
- Run command:
mkoctfile --mex -lws2_32.lib -DWIN32 -v -o pnet pnet.c
- The last command fails because a random .lib gets added somehow. Run manually (change paths for your installation):
link -nologo -DLL -out:pnet.mex pnet.o ws2_32.lib -LIBPATH:C:\bin\Octave-3.6.4\lib\octave\3.6.4 -LIBPATH:C:\bin\Octave-3.6.4\lib octinterp.lib octave.lib cruft.lib -export:mexFunction -incremental:no dirent.lib msvcmath.lib
I’ve forgotten how I figured that out, so sorry if I’m not giving credit if it’s due somewhere!