那位人兄用过ruby 编写的ipv6程序,有什么提示的地方么。
我些了一个及其简答的程序但是就是不通过。
用ipv6本地链路地址写一个ipv6 socket小程序,在用环回地址的时候是正确的,但是在用普通的ipv6本地链路地址的时候就出错。
程序如下
1、
///
require 'socket'
socket=UDPSocket.new(Socket::AF_INET6)
socket.bind("::1",12121)
loop do
msg,sender=socket.recvfrom(100)
host=sender[3]
puts "#{Time.now}:#{host} '#{msg}'"
end
///
it is right,server can receive client message.
2\
///
require 'socket'
socket=UDPSocket.new() #Socket::AF_INET6
socket.bind("fe80::218:8bff:fe0d:e27c",12121) #linux ipv6 link address
loop do
msg,sender=socket.recvfrom(100)
host=sender[3]
puts "#{Time.now}:#{host} '#{msg}'"
end
///
Error,提示消息如下:
in 'connect':Invalid argument - connect(2) (Errno::EINVAL) from server 5
哪位兄台可以帮分析一下呀。为什么这么简答的情况都出问题。
ruby 对ipv6的支持应该很好吧。
我的平台是linux,ruby的安装包默认编译是支持ipv6的吧?
我些了一个及其简答的程序但是就是不通过。
用ipv6本地链路地址写一个ipv6 socket小程序,在用环回地址的时候是正确的,但是在用普通的ipv6本地链路地址的时候就出错。
程序如下
1、
///
require 'socket'
socket=UDPSocket.new(Socket::AF_INET6)
socket.bind("::1",12121)
loop do
msg,sender=socket.recvfrom(100)
host=sender[3]
puts "#{Time.now}:#{host} '#{msg}'"
end
///
it is right,server can receive client message.
2\
///
require 'socket'
socket=UDPSocket.new() #Socket::AF_INET6
socket.bind("fe80::218:8bff:fe0d:e27c",12121) #linux ipv6 link address
loop do
msg,sender=socket.recvfrom(100)
host=sender[3]
puts "#{Time.now}:#{host} '#{msg}'"
end
///
Error,提示消息如下:
in 'connect':Invalid argument - connect(2) (Errno::EINVAL) from server 5
哪位兄台可以帮分析一下呀。为什么这么简答的情况都出问题。
ruby 对ipv6的支持应该很好吧。
我的平台是linux,ruby的安装包默认编译是支持ipv6的吧?