From: "David S." Date: 2001-02-04T06:39:52+09:00 Subject: [ruby-talk:10322] Re: TCPServer - bug in documentation ? On Sun, Feb 04, 2001 at 05:16:45AM +0900, Dave Thomas wrote: > Michael Neumann writes: > > I tried following code: > > require "socket" > > s = TCPServer.new(8080) > > s.accept > > > > Then 'telnet 192.168.1.1 8080' and got a "Connection refused". > > (192.168.1.1 is my local IP-adress) But 'telnet localhost 8080' > > works!!! (where localhost is 127.0.0.1) > > dave[ext/socket 14:11:50] ruby -v -e'p RUBY_PLATFORM' > ruby 1.6.2 (2001-02-02) [i686-linux] > "i686-linux" > > dave[ext/socket 14:13:10] ruby -r socket -e 's=TCPServer.new(5678);loop{s.accept}'& > > dave[ext/socket 14:13:48] telnet localhost 5678 > Trying 127.0.0.1... > Connected to localhost. > Escape character is '^]'. > ^] > telnet> Connection closed. > > dave[ext/socket 14:14:02] telnet zip.local.thomases.com 5678 > Trying 10.96.0.14... > Connected to zip.local.thomases.com. > Escape character is '^]'. > ^] > telnet> Connection closed. > I get the behavior reported by Michael Neumann, because on my machine "TCPServer.new" without a hostname specified apparently uses IPv6: irb(main):002:0> require 'socket' true irb(main):003:0> s = TCPServer.new(60001) # irb(main):004:0> loop {s.accept} then % telnet localhost 60001 Trying ::1... (<= IPv6 representation of 'localhost') Connected to localhost. Escape character is '^]'. and % telnet 65.3.200.83 60001 Trying 65.3.200.83... telnet: connect to address 65.3.200.83: Connection refused further % netstat -f inet6 Active Internet connections Proto Recv-Q Send-Q Local Address Foreign Address (state) tcp6 0 0 localhost.60001 localhost.14609 CLOSE_WAIT tcp6 0 0 localhost.14609 localhost.60001 FIN_WAIT_2 My system is OpenBSD 2.8, by the way. David S.