From: Hiroshi Saito Date: 2000-09-18T21:41:55+09:00 Subject: [ruby-list:24969] UDPsocket#send でエラー こんばんは、サイトウです。 Linuxマシン上で このスクリプトを実行すると ---- udptest.rb ------------------------------------------ require "socket" include Socket::Constants udp = UDPsocket.open() udp.bind("",2425) udp.setsockopt( SOL_SOCKET, SO_BROADCAST, 1 ) #udp.setsockopt( SOL_SOCKET, SO_BROADCAST|SO_DEBUG, 1 ) udp.send( "hello", 0, "", 2425 ) ---------------------------------------------------------- sendしているところで、 Exception `Errno::ENETUNREACH' というエラーが発生してしまいます。 udp.setsockopt( SOL_SOCKET, SO_BROADCAST|SO_DEBUG, 1 ) だと udptest.rb:9:in `send': Permission denied - sendto(2) (Errno::EACCES) になります。 broadcastにデータグラムを送る権限をとれていないよう なのですが、具体的にはどういった原因と解決方法が あるのでしょうか? connect や setsockopt のmanページを調べてみたのですが 解決方法がわかりませんでした。 環境は、 ruby 1.4.6 (2000-08-16) [i686-linux] Red Hat Linux release 5.2(J) (crimson) Kernel 2.0.36 on an i686 です。 もう一台の同様の構成の他のLinuxマシンでは動いています。 (windows98でも動いている) Rubyというよりネットワーク関連の質問になってしまいますが、 勘弁してください。 ----------------------------------- サイトウ ヒロシ HiroshiSaito@pob.org