--
You received this message because you are subscribed to the Google Groups "Harbour Developers" group.
To unsubscribe from this group and stop receiving emails from it, send an email to harbour-deve...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.
Are you user root on linux ?
--
out of curiosity, please check.
tryed it at 3 different Linux ( and one Windows ), confirmed none as root --
my hair have got 1 mm longer ;-)
Further that seem no option, a test something senseless, because:
a non-privileged user app should search a server service, instead that i hardcode the address in source.
I maybe post shortly working update for my recent network benchmark test -- seem now works fine ..
best regards
Rolf
..
IF Empty( aIFaces := hb_socketGetIFaces() )
aIFaces := { array( HB_SOCKET_IFINFO_LEN ) }
aIFaces[ 1, HB_SOCKET_IFINFO_BROADCAST ] := "255.255.255.255"
ENDIF
exakt that broadcast address made me the big trouble in Linux.
Linux:
A station with only one physical interface reported for hb_socketSendTo() correct:
0 bytes send.
A station with 3 physical interfaces, and another station with 3 physical, 2
virtual from VM machine plus a software bridge ('bridge-utils') reported:
all bytes send --- but i'm unsure which detoure they took ;)
Result: never got any answer with hb_socketRecvFrom().
Second problem: these HB_SOCKET_IFINFO_BROADCAST entries in aIFaces array
seem correct in Linux --- but it seem *always* '255.255.255.255' for any iface,
even for the loopback, in tested Windows XP.
Using this 255.255.... broadcast IP in Windows seem only to broadcast the first
interface in list ( but VM uses two emulated e1000 'network bridges' )
The only reliable way to detect the loopback (or 'invalid' ) device(s) i found:
(HB_SOCKET_IFINFO_HWADDR), so MAC address was here at me:
NIL -or- empty ('00:00...') for Windows / Linux.
I enhanced my strategy to remember already broadcasted C-class network divisions
-- as especially my 'virtual' interfaces are in the same subnet as the physical ones.
---
My function: detectServer(),
is now used in the source for my benchmark in Harbour user group.
That works now in *any* situation for me -- maybe others with multiple interfaces,
complex network and different OS-versions like to countercheck:
just start and stop the benchmark server is enough for that test ...
https://groups.google.com/d/msg/harbour-users/neLoEoBLRnA/9hXJaO6dQmkJ
best regards
Rolf