UDP is a poor choice for creating pipes between applications. I don't know how OSX behaves, but the networking stack in the flavors of Linux I'm familiar with and all versions of Windows are designed to drop UDP packets; even on the loopback connection. When you hit a certain frequency of message delivery (which is easy to do on loopback) you will start consistently dropping some percentage of the data. Even if you design your protocol around accepting random data loss, the deterministic way that packets are dropped will almost always lead to unacceptable results.
As a side note, there is a growing body of evidence that suggests TCP will outperform UDP even in cases where UDP would be the logical choice. Decades of testing and tuning, careful synchronization of implementations (see RFC 1122 and 2988 for example), hardware acceleration of the TCP/IP stack, and a prioritization of TCP over UDP in today's routing hardware gives it a seriously unfair advantage. This isn't really related to the choice of protocol for creating a local pipe though. John On Fri, May 22, 2009 at 4:23 PM, Philip Rosedale <phi...@lindenlab.com>wrote: > Looks like DBus is TCP based - that still seems unneeded, I think we > should use UDP, what think? > > Jan Ciger wrote: > > XML is definitely an overkill and certainly shouldn't be used for > > anything that has aspirations to be lightweight. > > > > Just use DBus - that is pretty standard and portable lightweight RPC > > mechanism and it is in the viewer already - it is used for passing > > slurls to the viewer from Linux browser. > > > > That would also allow easy scripting of the viewer in the future. > > > > Regards, > > > > Jan > > > _______________________________________________ > Policies and (un)subscribe information available here: > http://wiki.secondlife.com/wiki/SLDev > Please read the policies before posting to keep unmoderated posting > privileges >
_______________________________________________ Policies and (un)subscribe information available here: http://wiki.secondlife.com/wiki/SLDev Please read the policies before posting to keep unmoderated posting privileges