VL: UDP Server message loss

hey there,

i just ported one of my VVVV modules using a UDP (Network Server) nodes to VL to take advantage of the advanced UDPServer features (in particular the possibility to get the sender’s IP address).

it wasn’t much of a hassle until i noticed that using the VLnode does not receive quite a lot of the UDP messages (i would guess around a third or more messages don’t show up).
changing back to the original VVVV UDP Server node i did not notice any message loss at all using the same configuration.

setup: iPad <-- WIFI --> router <-- LAN --> VVVV

looking inside the VL UDPServer node i tried to change the ThreadSleep time in the async loop to 1ms or even remove it entirely but did not notice any improvement (though i’m not sure if this would have made sense at all because i don’t know if the messages get queued up somewhere when the thread is asleep)

did anyone experience something similar? for me this is quite a bummer as having the senders IP automatically with every message would make my life much easier…


after some more investigation i might have found the troublemaker:
when setting the TimeOut IObox inside the VL UDPServer node to zero (infinite timeout), i don’t seem to lose datagrams any more…

maybe this pad should be turned into a pin to be configurable from outside for future releases?

hei motzi,

please check with latest alphas. udp server/client were completely rewritten. please report your findings again then.

indeed - thanks for the hint.
latest alpha is looking good in this regard - did not notice any big package loss using the observables!

one more question to this topic:
right now only some of the operations of the System.Net.IPAdress class are being forwarded. missing is e.g. the MapToIPv4 method, which would be handy in my case (because my router somehow converts everything to IPv6 which makes adresses look like this ::fffff: instead of doing string operations i’d like to use the method already available.
what’s the most meaningful way to create these forwards:

  • in a selfmade patch that has the same category “IO.Net.IPAdress” and wait for the final version of VL.CoreLib
  • in the original VL.CoreLib.Experimtental.vl and create a pull request somewhere (just where?)
  • something i did not think of

good to hear…

regarding forwards: eventually the PR on VL.CoreLib will be the way to go. but obviously we still have to open the github repo for you to be able to do so. coming…

in the meantime you could use the node directly by simply referencing the correct GAC assembly to your document or do the forward in your document or in a separate document. whatever works best for you.

This topic was automatically closed 365 days after the last reply. New replies are no longer allowed.