From: Joel VanderWerf Date: 2010-06-03T11:31:56+09:00 Subject: Re: TCPSocket error Caleb Clausen wrote: > On 6/2/10, Ted Pon wrote: >> Hi all, >> >> I am a student learning ruby and I am getting an error that I can't >> figure out. It works on my teacher's mac, however does not on my laptop. >> >> Windows Vista 64-bit >> My ruby version is: 1.9.1p378 (2010-01-10 revision 26273) [i386-mingw32] >> >> >> Here is what I've tried in cmd >> >> irb >> >> irb(main):002:0> require 'socket' >> => true >> irb(main):005:0> TCPSocket.open('0.0.0.0', 8888) >> Errno::EADDRNOTAVAIL: The requested address is not valid in its context. >> - conne >> ct(2) >> from (irb):5:in `initialize' >> from (irb):5:in `open' >> from (irb):5 >> from C:/Ruby19/bin/irb:12:in `
' >> >> Any help would be appreciated! > > Apparently, 0.0.0.0 is treated as a loopback address on the mac. Apple > got this wrong; that's a broadcast address and should be treated as > the same as 255.255.255.255. 127.0.0.1 is the canonical loopback > address, and that's what you should use for greatest portability. IIUC 0.0.0.0 is the default route, not a broadcast addr. If you bind a tcp server to 0.0.0.0, then you can accept connections from any interface. I didn't know you could use this on the client side, too.