Address family not supported by protocol - connect(2)的解决办法

ruby的socket错误:

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

原因解析:

地址集不被支持.

解决方法:

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

1
2
3
4
5
6
7
8
9
10
11
12
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