ruby的socket错误:

Errno::EAFNOSUPPORT: Address family not supported by protocol - connect(2)

原因解析:

地址集不被支持.

解决方法:

改成ip或者修改 /etc/hosts文件.

require 'socket'
include Socket::Constants
puts "*"*50
puts AF_INET
puts SOCK_STREAM
puts "*"*50
socket = Socket.new(AF_INET, SOCK_STREAM, 0)
sockaddr = Socket.pack_sockaddr_in(2202, 'localhost') #改成127.0.0.1
socket.connect(sockaddr)
socket.puts "Hello from script 2."
puts "The server said, '#{socket.readline.chomp}'"
socket.close