On Mon, Apr 14, 2008 at 11:04:52PM +0200, Kai Blin wrote:
Binding to a specific address is the only easy way of detecting which interface an UDP packet was received on since recvfrom() only gives source address, not destination. Listening on 0.0.0.0 would make impossible to tell which interface a packet was received on. Furthermore, a program that explicitely tries to bind to each interface would fail all but the first bind and possibly bail out. Probably many games that use UDP would break.
does then windows actually handle also the other way around? like i listen on 127.0.0.1:12345 in windows and i will not be able to connect to 192.168.1.1:12345 on the same machine? i know it is "supported" - but i have the nagging doubt, that it will not work the same way as in unix but wine maps this behaviour as as unix would do it the same way. IANAE...
Which, as Christoph noted, cause windows apps to bind to loopback addresses, breaking the networking. This only started to happen recently as recently Linux distros started mapping the machine's hostname to a loopback address. I don't think Wine ever used the registry for anything like that.
not wine in its guts - the apps. wine now uses the /etc/hosts to determine the ip of the machine and put this informations in the places, where windows keeps them. one of this places was the registry (.../nettrans/tcpip/... or something). some apps use this informations. maybe