In file .../src/common/trdp_utils.c, and function "trdp_requestSocket()":
/ On Linux, binding to an interface address will prevent receiving of MCs! It'll work on Windows, though /
if (vos_isMulticast(mcGroup) && rcvMostly)
{
bindAddr = 0;
}
This condition is failing on a Windows7 PC computer with 2 ethernet interfaces running TRDP protocol just on one of them. As bind address is "0", sometimes the IGMP messages to subscribe to PD multicast groups are sent through the incorrect ethernet interface. So, as the TRDP ethernet interface is connected to a switch which is managing multicast flows, the multicast frames are not sent by the PC computer because no IGMP subscription was detected by the ethernet switch on this port. Once this condition is removed, everything is working fine.
Created vos_determineBindAddr() in vos_sock.c to differenciate between the different OS.