Bug #3953: TCPSocket / UDPSocket do not accept IPAddr objects.
http://redmine.ruby-lang.org/issues/show/3953

Author: Hal Brodigan
Status: Open, Priority: Normal
ruby -v: ruby 1.9.2p0 (2010-08-18 revision 29036) [x86_64-linux]

I noticed that TCPSocket/UDPSocket only accept String IPs/Hostnames, but not IPAddr objects. This is counter-intuitive since IP Addresses, along with Hostnames, are used to connect/bind to sockets.

    require 'socket'
    require 'resolv'
    
    ip = IPAddr.new(Resolv.getaddress('www.example.com'))
    sock = TCPSocket.new(ip,80)
    TypeError: can't convert IPAddr into String
	from (irb):5:in `initialize'
	from (irb):5:in `new'
	from (irb):5


----------------------------------------
http://redmine.ruby-lang.org