2012-04-18 61 views

回答

0

確定。我找到了。

我會在這裏記錄這個,所以有人可能會很幸運並找到它。在創建socket之前

BasicSocket.do_not_reverse_lookup = true 

要禁用自動查找,把這個在你的代碼。它有訣竅。

1

the documentation,你可以在connect方法稱爲rsock_addrinfo方法見。

此方法調用getaddrinfo

所以我沒有看到解決辦法,你必須調用另一個連接方法。

也許你可以添加一些codelines更好的理解?恐怕你不能。

static VALUE 

udp_connect(sock, host, port) 
VALUE sock, host, port; 
{ 
rb_io_t *fptr; 
struct udp_arg arg; 
VALUE ret; 

rb_secure(3); 

arg.res = sock_addrinfo(host, port, SOCK_DGRAM, 0); 

GetOpenFile(sock, fptr); 
arg.fd = fileno(fptr->f); 
ret = rb_ensure(udp_connect_internal, (VALUE)&arg, 
       RUBY_METHOD_FUNC(freeaddrinfo), (VALUE)arg.res); 
if (!ret) rb_sys_fail("connect(2)"); 
return INT2FIX(0); 
} 

來源:http://ruby-doc.org/stdlib-1.8.7/libdoc/socket/rdoc/UDPSocket.html

+0

我的不好,我忘了把紅寶石版本:(,我使用紅寶石1.8.7 – cmouse 2012-04-18 11:53:04