[#46595] nokogiriがインストールできない — Soichi Ishida <zau_777_emacs@...>
7 messages
2009/12/02
[#46602] プログラミング学習について — 清重 愛一郎 <loveone6@...>
初めまして、清重愛一郎と申します。大学生です。
10 messages
2009/12/03
[#46608] Ruby Shoesはどこからdownloadできますか? — 島村竜一 <shimamura@...>
はじめまして
6 messages
2009/12/05
[#46621] エラー([BUG])の追いかけ方 — "(株)ネットフォレスト 植田裕之" <ueda@...>
植田と申します。
6 messages
2009/12/07
[#46639] 動的HTMLからデータを取得 — Soichi Ishida <zau_777_emacs@...>
7 messages
2009/12/16
[#46647] RubyでWindowsの常駐サービスプログラムを作る方法 — kouichi_someya@...
はじめまして。
12 messages
2009/12/16
[#46649] Re: RubyでWindowsの常駐サービスプログラムを作る方法
— "U.Nakamura" <usa@...>
2009/12/17
こんにちは、なかむら(う)です。
[#46651] Re: RubyでWindowsの常駐サービスプログラムを作る方法
— 田口 浩 <h-taguchi@...>
2009/12/17
田口と申します。
[#46650] xpathについて — Soichi Ishida <zau_777_emacs@...>
6 messages
2009/12/17
[#46666] TCPSocket#peeraddr に時間がかかる。 — "5.5" <5.5@...>
5.5 です。
6 messages
2009/12/19
[#46667] Ruby/TkのTkHTMLを扱う際にsegmentation fault — 上野宏法 <ronor.u@...>
はじめまして。Ronorと申します。
5 messages
2009/12/19
[#46673] Ruby/GTK2でキー入力イベントをソフトウェア的に発生できません。 — Tomokiyo Nomura <tnomura@...>
野村@延岡です。
4 messages
2009/12/20
[#46674] 子プロセスを kill する方法は? — "Hideo Konami" <konami@...>
小波です。
7 messages
2009/12/21
[#46690] Float::INFINITY — "KISHIMOTO, Makoto" <ksmakoto@...4u.or.jp>
きしもとです
10 messages
2009/12/22
[ruby-list:46666] TCPSocket#peeraddr に時間がかかる。
From:
"5.5" <5.5@...>
Date:
2009-12-19 13:45:57 UTC
List:
ruby-list #46666
5.5 です。
Windows マシンから,LAN 内の固定 IP のマシンに FTP でファイル
転送しようとしたところ,異常に時間がかかりました。小さなファイ
ル一つ送るのに数秒です。
Mac OS X 10.5 で同じようなことをやると,一瞬で終わります。
WIndows でも FTP ソフト(NextFTP)で転送すると一瞬で終わります。
原因を調べたところ,TCPSocket#peeraddr に時間がかかっているよう
でした。
以下の実験をしました。
マシン A:
Windows XP SP2(TCP/IP の設定はたぶんいじってない)
ruby 1.8.7 (2009-06-12 patchlevel 174) [i386-mswin32]
マシン B:
※詳細は忘れましたが,古い Sun OS です。
IP アドレスは 192.168.1.93 で固定になっています。
事情で,TCP/IP の設定を変更することができません。
マシン A から nslookup 192.168.1.93 としてもこのマシンのホスト名
が取得できません。
さて,マシン A において,以下のスクリプトを走らせました。
----
require 'socket'
require 'benchmark'
result=nil
Benchmark.bm do |rep|
rep.report do
s=TCPSocket.open("192.168.1.93", "21")
result=s.peeraddr
end
end
p result
----
結果は以下の通り。4.5 秒ほど無駄に時間がかかっています。
----
user system total real
0.031000 0.000000 0.031000 ( 4.531250)
["AF_INET", 21, "192.168.1.93", "192.168.1.93"]
----
ネットワークの仕組みがよく分かってないのですが,IP アドレスから
ホスト名を得ることができないと TCPSocket#peeraddr に時間がかか
るのかと思い,さらに調べました。
ためしに,Unix での /etc/hosts にあたるファイル
C:\WINDOWS\system32\drivers\etc\hosts
に
----
192.168.1.93 pcs3
----
と書いて再びやってみたところ,以下のように正常になりました。
----
user system total real
0.000000 0.000000 0.000000 ( 0.125000)
["AF_INET", 21, "pcs3", "192.168.1.93"]
----
また,FTP によるファイル転送も普通の速度になりました。(パッシ
ブモードの場合)
これで一応解決を見ました。
なお,下記を参考にしました。
http://sonic64.com/2004-02-03.html#2004-02-03-101
しかし,釈然としないものが残ります。
素人考えなので,見当違いなら済みません。ファイル転送のために
ホスト名は要りませんよね? TCPSocket#peeraddr を使わないよう
にして,IP アドレスだけでも Net::FTP#put などが速く動くように
できないものでしょうか?
--
5.5@moji.gr.jp