I have been trying for quite a while to port some
client server apps to Linux. The only real problem
is that I just can't get UDP broadcasts to work
properly on kernels 1.1.18 thru 1.1.59.
Here's the story: (example network: 199.99.99)
if route includes entry for 199.99.99.0 to eth0, UDP broadcasts
( 199.99.99.255) are sent to other machines on network,
but processes on local machine do not see broadcasts!
If this entry is replaced with 199.99.99.0 to lo, UDP broadcasts
are now seen by processes on local machine, but other machines
on the net do not get them!!!
It seems that you can route broadcasts out on the net to other
processes or send them back to local processes but not do both!
Note that the app works correctly on Sun 4.1.3, SOLARIS 2.4,
HP-UX, DEC OSF, AIX and even Windows NT, but does not seem to
work under Linux :-(.
I have tried all kinds of contortions with the IP routing
tables including rebuilding the kernel without IP forwarding,
but nothing seems to fix this really doozy behaviour.
Any clues?
Weng.