2012-04-18 27 views

答えて

0

[OK]をクリックします。見つけた。

誰かが幸運を得て見つけられるように、ここでこれを文書化します。

自動検索を無効にするには、あなたのコードでこれを置く:

BasicSocket.do_not_reverse_lookup = true 

をあなたはソケットを作成する前に。それはトリックです。

1

the documentationには、connectメソッドでは、rsock_addrinfoというメソッドが呼び出されます。

このメソッドは、getaddrinfoを呼び出します。

私は回避策が表示されないので、別のconnectメソッドを呼び出す必要があります。

もっと理解を深めるために、いくつかのコードラインを追加できますか?私はあなたができないことを恐れている。

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

関連する問題